Skip to content

Commit e0ae187

Browse files

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

src/guide/list.md

+15-15
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ example1.items = example1.items.filter(item => item.message.match(/Foo/))
168168
例えば:
169169

170170
```html
171-
<li v-for="n in evenNumbers">{{ n }}</li>
171+
<li v-for="n in evenNumbers" :key="n">{{ n }}</li>
172172
```
173173

174174
```js
@@ -188,7 +188,7 @@ computed: {
188188

189189
```html
190190
<ul v-for="numbers in sets">
191-
<li v-for="n in even(numbers)">{{ n }}</li>
191+
<li v-for="n in even(numbers)" :key="n">{{ n }}</li>
192192
</ul>
193193
```
194194

@@ -211,7 +211,7 @@ methods: {
211211

212212
```html
213213
<div id="range" class="demo">
214-
<span v-for="n in 10">{{ n }} </span>
214+
<span v-for="n in 10" :key="n">{{ n }} </span>
215215
</div>
216216
```
217217

@@ -225,7 +225,7 @@ methods: {
225225

226226
```html
227227
<ul>
228-
<template v-for="item in items">
228+
<template v-for="item in items" :key="item.msg">
229229
<li>{{ item.msg }}</li>
230230
<li class="divider" role="presentation"></li>
231231
</template>
@@ -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">
245-
{{ todo }}
247+
{{ todo.name }}
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">
256-
{{ todo }}
254+
<template v-for="todo in todos" :key="todo.name">
255+
<li v-if="!todo.isComplete">
256+
{{ todo.name }}
257257
</li>
258-
</ul>
259-
<p v-else>No todos left!</p>
258+
</template>
260259
```
261260

262261
## コンポーネントと `v-for`
@@ -346,7 +345,8 @@ app.component('todo-item', {
346345
<button @click="$emit('remove')">Remove</button>
347346
</li>
348347
`,
349-
props: ['title']
348+
props: ['title'],
349+
emits: ['remove']
350350
})
351351

352352
app.mount('#todo-list-example')

0 commit comments

Comments
 (0)