当前位置: 首页 > news >正文

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(会变化,产生不对应的效果)
http://www.cnnetsun.cn/news/138421.html

相关文章:

  • STM32定时器定时中断
  • 打破离散制造“内卷”:工业智能体(AI Agent)落地的五大核心原则
  • C语言 操作符 关系操作符 笔记
  • 2025年战略咨询在行业标准演进中的推动力
  • 【电商API接口】电商平台价格监控行业全景:数据驱动的定价革命
  • java计算机毕业设计蔬菜配送系统 生鲜直配平台的设计与实现 社区蔬菜一站式采购与配送管理系统
  • dubbo源码之一次RPC请求的生死之旅(基于Dubbo 2.7.8)
  • 基于SpringBoot+Vue的web城乡居民基本医疗信息管理系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • 【完整源码+数据集+部署教程】手势与标志识别检测系统源码[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]
  • 03.统计学机器学习
  • [Poi2011]Lightning Conductor题解
  • 一文读懂大模型:收藏级教程,助你从入门到精通
  • Nginx云计算大数据——安装AND版本升级(普通升级+平滑升级+失败回滚)
  • GPT-5.2 实测数据流出:逻辑推理性能翻倍,大模型“幻觉”真的被终结了吗?
  • SQL SERVER——通过计划任务方式每月对配置数据、审计数据等进行备份
  • 前端——跨平台桌面应用开发实践
  • OpenAI 的反击!GPT-5.2 强行拉开代差,Gemini 3 和 Claude 4 还有机会吗?
  • 零售打工人加薪难?靠这张证,我在激烈竞争里站稳了脚跟
  • 基于springboot的多媒体素材库的开发与应用毕业论文+PPT(附源代码+演示视频)
  • 从离线语音到多模态智能体四博智联 AI 硬件整体解决方案全景解析
  • 我发现跨医院联合训练让诊断准确率飙升后来才知道是横向联邦学习在数据孤岛中的绝招
  • 性能压测工具:wrk
  • 论文引用标注工具排名2025:6大平台+自动规范推荐
  • Kotaemon AWS EC2部署实例:国际业务首选
  • 实在没货,简历(软件测试)咋写?
  • 网约车服务端线上流量巡检与测试验收技术
  • 公考日记7
  • 火电一次调频、自抗扰调频及群智能算法智能调频在MATLAB/Simulink中的应用
  • 科研实验室温湿度监控新范式:以太网 POE 技术全场景解决方案
  • RV1126 NO.57:ROCKX+RV1126人脸识别推流项目之读取人脸图片并把特征值保存到sqlite3数据库