コメントありがとうございます。 サービス終了した今なら、安く中古が手に入りそ…
CDN版Vue3でv-ifでDOMが変化する時にカナの自動入力をしてみた
次の条件のもと作成されています。
・Vue3その他もろもろはインストールしたくない。
・CDNからダウンロードした各種jsを同ドメイン内にアップロードしている。
・CompositionAPIを使用。
【ポイント】
watchEffectにflushオプションを指定する。
vanilla-autokanaを使用。
https://github.com/ryo-utsunomiya/vanilla-autokana
index.html
<body id="body"> <button type="button" @click="btnClick">コンポーネントを{{ compoVisible ? '隠す' : '表示' }}</button> <compo></compo> </body>
index.js
'use strict'; Vue.createApp({ setup( ){ const compoVisible = Vue.ref( false ); Vue.provide('compoVisible', compoVisible); const btnClick = (e) => { if (compoVisible.value) { compoVisible.value = false; } else { compoVisible.value = true; }; }; return { btnClick, compoVisible }; }, components: { 'compo': Vue.defineAsyncComponent( () => window['vue3-sfc-loader']['loadModule']('./index03.vue', window['Vue3']['loaderOption']() ) ) } }).mount('#body');
index03.vue
<template> <div v-if="visible"> <input type="text" id="name"><br> <input type="text" id="kana"><br> </div> </template> <script scoped> import { watchEffect } from 'vue' export default{ setup( props ){ const visible = Vue.inject('compoVisible'); watchEffect( () => { console.log( visible.value ); if (visible.value) AutoKana.bind("#name", "#kana"); }, { flush: 'post' }) return { visible }; } }
検索
コメントを残す