質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

1回答

675閲覧

Vueコンポーネント内でv-if/v-modelを使いたい!!

marronnier

総合スコア5

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2021/05/12 10:45

編集2021/05/12 12:51

前提・実現したいこと

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を書いたり書かなかったりしても同様でした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

iとlでタイポされてますが、それが問題では?

  • checkfig
  • checkflg

投稿2021/05/12 11:47

szk.

総合スコア1400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

marronnier

2021/05/12 12:48

おっしゃる通りタイポをしていました。 しかし、これを直しても解決できませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問