配列の中から特定の条件に合うhtmlを生成したのですが、
v-forの中でv-ifを用いた検索をすると条件通りの要素は取得し出力されるのですが、配列の数だけhtml自体は生成されてしまうので困っています。どのように書けるのでしょうか。
以下コードになります。
このようなjsonファイルをaxiosを用いて配列store.state.projectsDataに格納しています。
projectJson
1[ 2 { 3 "id": 4, 4 "name":"kyoto" 5 }, 6 { 7 "id": 3, 8 "name":"hiroshima", 9 }, 10 { 11 "id": 2, 12 "name":"gihu", 13 }, 14 { 15 "id": 1, 16 "name":"yokohama" 17 } 18]
userIdはURLのpathに当たります。(http://localhost:3000/projects/kyoto)。**userId**と配列内のnameの一致を見ています。
vue
1<div v-for="item in $store.state.projectsData" v-bind:key="item.id"> 2 <template v-if="item.name === userId"> 3 {{item}} 4 </template> 5</div>
結果としては目当てのkyotoの内容が出力されたのですが、検証で見た際に
<div> <!----> </div>
そもそもv-for内で条件分岐するべき出ないと思うのですが、、
このような要素が3つ生成されます。
このままでも問題ないのか。
何か他に書き方があるのか。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/05 05:43 編集
2018/12/05 05:51 編集
2018/12/05 06:01