news 2026/5/10 16:25:36

Vue指令(3)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue指令(3)

v-for

基于数据循环,多次渲染整个元素

基于的数据:数组、对象、数字…

因为在实际开发当中,对象、数字运用的场景较少,常用的为数组

使用样式

遍历数组语法

渲染给需要多次使用的标签

v-for="(item,index)" in '数组'

其中item指的时便利的每一项,index指的是数组的下标

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>v-for的使用</title></head><body><divid="app"><h3>小黑水果店</h3><ul><liv-for="(item, index) in list">{{ item }}</li></ul></div><scriptsrc="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>newVue({el:'#app',data:{list:['苹果','香蕉','橙子','葡萄','水蜜桃']}})</script></body></html>

在上述“小黑水果店示例’代码中,只使用了item属性,源代码可以修改为

<li v-for=item in list>{{ item }}</li>

小黑的书架案例

利用v-for实现列表渲染、v-on函数实现filter删除功能

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>小黑书架案例</title></head><body><divid="app"><h3>小黑的书架</h3><ul><liv-for="(item,index) in Booklist":key="item.id"><span>{{ item.name }}</span><span>{{ item.author }}</span><!-- 删除可以通过数组下标以及id删除,但最好使用id删除,id是唯一的 --><button@click="del(item.id)">删除</button></li></ul></div><scriptsrc="https://cdn.bootcss.com/vue/2.5.17/vue.min.js"></script><script>newVue({el:'#app',data:{Booklist:[{id:1,name:'《红楼梦》',author:'曹雪芹'},{id:2,name:'《西游记》',author:'吴承恩'},{id:3,name:'《三国演义》',author:'罗贯中'},{id:4,name:'《水浒传》',author:'施耐庵'}]},methods:{del(id){console.log('删除id为',id),// 根据id在数组中删除元素->filter// filter:根据条件仅保留满足条件的元素,得到一个新数组,不改变原数组this.Booklist=this.Booklist.filter(item=>item.id!==id)}}})</script></body></html>
v-for中的key
语法

key属性=‘唯一标识’

作用

给列表项添加唯一标识。便于Vue进行列表项的正确排序复用

下面是对使用key与未使用key时的场景的分别说明

在代码中添加key时页面呈现的效果

<li v-for="(item,index) in Booklist" :key="item.id">

key相当于给列表中的每一个li添加了唯一的标识

不在代码中添加key时页面呈现的效果

<li v-for="(item,index) in Booklist">

没有给li添加唯一的标识时,v-for的默认行为会尝试原地修改内容(就地复用)

综上来看,在使用v-for的时候应该在代码中使用key属性=‘唯一标识’

使用key的注意点
  • key的值只能是字符串或者数字类型
  • key的值必须具有唯一性
  • 推荐使用id作为key(唯一),不推荐使用index作为key(会变化,产生不对应的效果)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 9:58:05

sward全面介绍(16) - 如何将文档评审与钉钉通知相结合

sward将钉钉通知开放为社区版&#xff0c;本篇文章将介绍如何将文档审批与钉钉通知想结合&#xff0c;使审批负责人第一时间收到审批消息并及时审批。 1、配置钉钉通知 进入系统设置->消息->发送方式页面下&#xff0c;点击钉钉后的配置 字段说明名称发送方式名称&…

作者头像 李华
网站建设 2026/5/9 3:00:44

排序算法:冒泡排序

冒泡排序&#xff08;Bubble Sort&#xff09;详解 冒泡排序是一种基础的交换排序算法&#xff0c;核心思想是&#xff1a;重复遍历待排序数组&#xff0c;每次比较相邻的两个元素&#xff0c;若顺序错误则交换它们&#xff0c;直到没有元素需要交换为止。 资料&#xff1a;h…

作者头像 李华
网站建设 2026/5/9 7:59:10

MySQL 常见面试题图解

用香蕉尝试制作了一些跟MySQL关的面试题图解&#xff0c;方便大家更好地理解这些概念和准备相关的面试。一、drop、truncate 和 delete 的区别二、MySQL 的大表查询为什么不会爆内存&#xff1f;三、MySQL 临时表的用法和特性四、索引的目的是什么&#xff1f;五、MySQL 的并行…

作者头像 李华
网站建设 2026/5/10 5:54:46

Stop Using CSVs for Storage – Here Are the Top 5 Alternatives

CSVs cost you time, disk space, and money. Here are five alternatives every data scientist must know. Dario Radečić Sep 20, 2021 7 min read Share Photo by jaikishan patel on Unsplash Everyone and their grandmother know what a CSV file is. But is it …

作者头像 李华
网站建设 2026/5/9 11:40:54

冥想第一千七百三十七天(1737)

1.很快就又周四了&#xff0c;感觉像周二的感觉&#xff0c;今天休息日&#xff0c;总算稍微松口气的一天。下班了去游泳。 2.感谢父母&#xff0c;感谢朋友&#xff0c;感谢家人&#xff0c;感谢不断进步的自己。

作者头像 李华
网站建设 2026/5/10 1:41:47

手撕call/apply/bind:从ES6用法到手写实现,吃透this指向核心

&#x1f525; 手撕call/apply/bind&#xff1a;从ES6用法到手写实现&#xff0c;吃透this指向核心 在JavaScript中&#xff0c;this 指向的绑定是前端开发绕不开的核心知识点&#xff0c;而 call、apply、bind 作为改变函数执行上下文的“三剑客”&#xff0c;既是解决 this 丢…

作者头像 李华