File tree Expand file tree Collapse file tree 1 file changed +7
-8
lines changed Expand file tree Collapse file tree 1 file changed +7
-8
lines changed Original file line number Diff line number Diff line change @@ -238,25 +238,24 @@ methods: {
238
238
` v-if ` と ` v-for ` を同時に利用することは** 推奨されません** 。 詳細については [ スタイルガイド] ( ../style-guide/#avoid-v-if-with-v-for-essential ) を参照ください。
239
239
:::
240
240
241
- それらが同じノードに存在するとき、 ` v-for ` は ` v-if ` よりも高い優先度を持ちます。これは ` v-if ` がループの各繰り返しで実行されることを意味します。以下のように、これはいくつかの項目のみのノードを描画する場合に便利です。
241
+ それらが同じノードに存在するとき、 ` v-if ` は ` v-for ` よりも高い優先度を持ちます。つまり ` v-if ` の条件は、 ` v-for ` のスコープの変数にはアクセスできないということです:
242
242
243
243
``` html
244
+ <!-- インスタンスに "todo" プロパティが定義されていないため、エラーが発生します。 -->
245
+
244
246
<li v-for =" todo in todos" v-if =" !todo.isComplete" >
245
247
{{ todo }}
246
248
</li >
247
249
```
248
250
249
- 上記は、完了していない項目だけを描画します。
250
-
251
- 代わりに、ループの実行を条件付きでスキップすることを目的にしている場合は、ラッパー要素 (または [ ` <template> ` ] ( conditional#conditional-groups-with-v-if-on-lt-template-gt ) )上に ` v-if ` を配置できます。例えば:
251
+ これは ` v-for ` を ` <template> ` タグで囲み、移動させることで修正できます:
252
252
253
253
``` html
254
- <ul v-if = " todos.length " >
255
- <li v-for = " todo in todos " >
254
+ <template v-for = " todo in todos" >
255
+ <li v-if = " ! todo.isComplete " >
256
256
{{ todo }}
257
257
</li >
258
- </ul >
259
- <p v-else >No todos left!</p >
258
+ </template >
260
259
```
261
260
262
261
## コンポーネントと ` v-for `
You can’t perform that action at this time.
0 commit comments