前提・実現したいこと
Vue.jsのCDN版を利用しています。
クリック操作で要素を表示できるようにしたいです。
それにあたってVueコンポーネント内でv-ifを使いたいのですが、
Vueインスタンスを記述するとエラーと警告が発生しました。
ほとんどの警告はVue-routerに関連する部分のようです。
elementはtemplate内に記述しているコンポーネントの一部なので、
恐らくそれが原因かと思いますが、
解決方法がさっぱりわかりません。
発生している問題・エラーメッセージ
error
1Cannot find element: #fav-tile
warning
1vue.js:634 [Vue warn]: Property or method "checkfig" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties. 2 3found in 4 5---> <Anonymous> 6 <Root> 7warn @ vue.js:634 8warnNonPresent @ vue.js:2047 9has @ vue.js:2092 10eval @ VM6387:3 11Vue._render @ vue.js:3551 12updateComponent @ vue.js:4067 13get @ vue.js:4478 14Watcher @ vue.js:4467 15mountComponent @ vue.js:4074 16Vue.$mount @ vue.js:9044 17Vue.$mount @ vue.js:11944 18init @ vue.js:3125 19merged @ vue.js:3308 20createComponent @ vue.js:5973 21createElm @ vue.js:5920 22createChildren @ vue.js:6048 23createElm @ vue.js:5949 24createChildren @ vue.js:6048 25createElm @ vue.js:5949 26patch @ vue.js:6509 27Vue._update @ vue.js:3946 28updateComponent @ vue.js:4067 29get @ vue.js:4478 30Watcher @ vue.js:4467 31mountComponent @ vue.js:4074 32Vue.$mount @ vue.js:9044 33Vue.$mount @ vue.js:11944 34(anonymous) @ main.js:264
該当のソースコード
main.js
1/* 略 */ 2const Page1 = { 3 template: ` 4<div class="content"> 5/* 略 */ 6 <div class="container"> 7 <input type="checkbox" v-model="checkfig" /> チェックを入れる 8 <div v-if="checkfig" id="fav-tile">ok</div> 9 </div> 10</div> 11` } 12 13const routes = [ 14 { path: '/', component: Home }, 15 { path: '/page1', component: Page1 }, 16/* 略 */ 17] 18 19const router = new VueRouter({ 20 routes 21}) 22 23const app = new Vue({ 24 router 25}).$mount('#app') 26 27new Vue({ 28 el: '#fav-tile', 29 data: { 30 checkflg : false, 31 } 32});
HTML(body閉じる直前)
1 <script src="https://unpkg.com/vue/dist/vue.js"></script> 2 <script src="https://unpkg.com/vue-router@3.0.7/dist/vue-router.js"></script> 3 <script src="./js/NavItem.js"></script> 4 <script src="./main.js" defer></script>
試したこと
条件分岐が無い状態での表示は確認できています。
scriptタグ内にdeferを書いたり書かなかったりしても同様でした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/12 12:48