Skip to content

Commit d1a38f5

Browse files
committed
1 parent cf09c44 commit d1a38f5

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

src/guide/list.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -238,25 +238,24 @@ methods: {
238238
`v-if``v-for` を同時に利用することは**推奨されません**。 詳細については [スタイルガイド](../style-guide/#avoid-v-if-with-v-for-essential) を参照ください。
239239
:::
240240

241-
それらが同じノードに存在するとき、 `v-for``v-if` よりも高い優先度を持ちます。これは `v-if` がループの各繰り返しで実行されることを意味します。以下のように、これはいくつかの項目のみのノードを描画する場合に便利です。
241+
それらが同じノードに存在するとき、 `v-if``v-for` よりも高い優先度を持ちます。つまり `v-if` の条件は、 `v-for` のスコープの変数にはアクセスできないということです:
242242

243243
```html
244+
<!-- インスタンスに "todo" プロパティが定義されていないため、エラーが発生します。 -->
245+
244246
<li v-for="todo in todos" v-if="!todo.isComplete">
245247
{{ todo }}
246248
</li>
247249
```
248250

249-
上記は、完了していない項目だけを描画します。
250-
251-
代わりに、ループの実行を条件付きでスキップすることを目的にしている場合は、ラッパー要素 (または [`<template>`](conditional#conditional-groups-with-v-if-on-lt-template-gt))上に `v-if` を配置できます。例えば:
251+
これは `v-for``<template>` タグで囲み、移動させることで修正できます:
252252

253253
```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">
256256
{{ todo }}
257257
</li>
258-
</ul>
259-
<p v-else>No todos left!</p>
258+
</template>
260259
```
261260

262261
## コンポーネントと `v-for`

0 commit comments

Comments
 (0)