Vue v-for 教程 简单的介绍和使用
v-for
指令是 在 Vue 中进行列表渲染 。 如果你的 Vue 实例有一个数组 data
,您可以使用 v-for
:
const app = new Vue({
data: () => ({ people: ['Axl Rose', 'Slash', 'Izzy Stradlin'] }),
// 1 `<li>` for each person in `people`
template: `
<div>
<h1>Band Members</h1>
<ul>
<li v-for="person in people">
{{person}}
</li>
</ul>
</div>
`
});
Vue 还处理 数组变化检测 。如果您要 使用从数组中删除一个元素 splice()
,Vue 会移除一个 <li>
来自 DOM 为您服务。
// Remove "Izzy Stradlin" from the array, and also from the `<ul>`
this.array.splice(2, 1);
和 v-model
一起使用
虽然您可以使用循环遍历字符串数组 v-for
,它不适用于 v-model
,v-model
指令将无法通过对 <input>
。
const app = new Vue({
data: () => ({ people: ['Axl Rose', 'Slash', 'Izzy Stradlin'] }),
// 1 `<input>` for each person in `people`
template: `
<div>
<h1>Band Members</h1>
<div>{{people}}</div>
<ul>
<li v-for="person in people">
<input v-model="person">
<span>{{person}}</span>
</li>
</ul>
</div>
`
});
即使 `input` 更新了,数组也不会改变!
解决这个问题的方法是使用一个对象数组 v-for
。每当你使用 v-model
和 v-for
,确保你绑定的属性 v-model
是一个对象属性。
const app = new Vue({
data: () => ({
people: [
{ name: 'Axl Rose' },
{ name: 'Slash' },
{ name: 'Izzy Stradlin' }
]
}),
template: `
<div>
<h1>Band Members</h1>
<div>{{people}}</div>
<ul>
<li v-for="person in people">
<input v-model="person.name">
<span>{{person.name}}</span>
</li>
</ul>
</div>
`
});
与对象一起使用
你也可以使用 v-for
使用 v-for="(value, key) in obj"
句法。注意 v-for
只循环 自己的属性 。
const app = new Vue({
data: () => ({
people: {
singer: 'Axl Rose',
guitarist: 'Slash',
bassist: 'Duff McKagan'
}
}),
// 3 `<li>` elements: "Axl Rose - singer", "Slash - guitarist",
// and "Duff McKagan - bassist"
template: `
<div>
<h1>Band Members</h1>
<ul>
<li v-for="(value, key) in people">
{{value}} - {{key}}
</li>
</ul>
</div>
`
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论