v-for 组件

收藏422

阅读20196

更新时间2025-08-22

v-bind 简写

为了动态绑定 props,我们使用 v-bind,并且因为我们现在比以前更多地使用 v-bind,所以我们将在本教程的其余部分使用 v-bind: 简写 :


"key" 属性

如果我们在使用 v-for 创建元素后修改数组,由于 Vue 更新使用 v-for 创建的元素的方式,可能会出现错误。 Vue 重用元素来优化性能,因此如果我们删除一个项目,则会重用现有元素,而不是重新创建所有元素,并且元素属性可能不再正确。

元素被错误重用的原因是元素没有唯一标识符,而这正是我们使用 key 属性 for: 来让 Vue 告诉元素的 分开。

如果没有 key 属性,我们将生成错误行为,但首先让我们使用 v-for 构建一个包含食物的网页来显示:食物名称、描述、收藏夹的食物的图像以及用于更改收藏夹状态的按钮。

示例

App.vue:





FoodItem.vue:





运行示例 »

要知道我们需要 key 属性,让我们创建一个删除数组中第二个元素的按钮。 发生这种情况时,如果没有 key 属性,收藏夹的图像将从"Fish"元素转移到"Cake"元素,这是不正确的:

示例

与前面示例的唯一区别是我们添加了一个按钮:

和一个方法:

methods: {
  removeItem() {
    this.foods.splice(1,1);
  }
}

in App.vue.

运行示例 »

如前所述:当删除元素时收藏夹的图像从"鱼"变成"蛋糕"的错误与 Vue 通过重用元素来优化页面有关,同时 Vue 无法完全分辨 元素分开。 这就是为什么我们在使用 v-for 生成元素时应该始终包含 key 属性来唯一标记每个元素。 当我们使用 key 属性时,我们不再遇到这个问题。

我们不使用数组元素索引作为 key 属性值,因为当删除和添加数组元素时索引会发生变化。 我们可以创建一个新的数据属性来为每个项目保留唯一的值,例如 ID 号,但由于食品已经有唯一的名称,我们可以使用它:

示例

我们只需要在 App.vue 中添加一行来唯一标识使用 v-for 创建的每个元素即可解决问题:


运行示例 »

Vue 练习

通过练习测试自己

练习题:

当使用 v-for 生成元素时,始终建议使用哪个特定属性?

="x.id"
  :fish-name="x.name"
  :img-url="x.url"
/>

相关

视频

RELATED VIDEOS

更多

免费

Web前端开发极速入门
初级 Web前端开发极速入门

219920次学习

收藏

免费

前端入门_HTML5
初级 前端入门_HTML5

616946次学习

收藏

免费

30分钟学会网站布局
初级 30分钟学会网站布局

238440次学习

收藏

免费

CSS视频教程-玉女心经版
初级 CSS视频教程-玉女心经版

393054次学习

收藏

免费

独孤九贱(1)_HTML5视频教程

免费

独孤九贱(6)_jQuery视频教程

免费

独孤九贱(7)_Bootstrap视频教程

免费

独孤九贱(2)_CSS视频教程
初级 独孤九贱(2)_CSS视频教程

229605次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.9万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.4万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71.1万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.8万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

34万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号