Vue v-for 教程 简单的介绍和使用

发布于 2022-08-29 08:59:39 字数 3426 浏览 111 评论 0

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-modelv-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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

苦行僧

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

胡图图

文章 0 评论 0

zt006

文章 0 评论 0

z祗昰~

文章 0 评论 0

冰葑

文章 0 评论 0

野の

文章 0 评论 0

天空

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文