Vue3专题 - 列表渲染
大家好我是Java1234_小锋老师最近更新 《一天学会 Vue3 Vite element-plus UI框架 视频教程》专辑感谢大家支持。本课程主要介绍和讲解 Vue3框架Vite构建工具以及element-plus UI框架。Vue3核心知识介绍Vite构建工具使用以及element-plus UI框架的基础组件配置组件Form 表单组件Data 数据展示组件Navigation导航组件Feedback反馈组件Container布局组件介绍和使用。视频教程课件源码打包下载 链接https://pan.baidu.com/s/1o-zRfndo1HHrS_uFroOiCw?pwd1234提取码1234具体位置 - 第四阶段富客户端技术里面Vue3专题 - 列表渲染列表渲染用来根据数组或对象批量生成一组 DOM。Vue3 用v-for指令完成这件事。适合商品列表、待办事项、评论区、表格行、下拉选项等场景。1. 为什么需要列表渲染页面上经常要展示「很多条结构相同的数据」。如果一条条手写标签数据一变就要手动改 DOM。用v-for绑定数组后增删改数据列表会自动更新!-- 不推荐手写很多重复标签 -- li苹果/li li香蕉/li li橙子/li !-- 推荐用 v-for 根据数据生成 -- li v-foritem in fruits :keyitem{{ item }}/li2. v-for 基本用法2.1 遍历数组语法v-foritem in list也可写成(item, index) in list拿到下标。script setup /** * v-for 基础 Demo * 根据水果数组渲染列表 */ import { ref } from vue /** 水果列表 */ const fruits ref([苹果, 香蕉, 橙子]) /script template ul li v-for(item, index) in fruits :keyindex {{ index 1 }}. {{ item }} /li /ul /template要点item是当前项index是下标从 0 开始模板里fruits会自动解包不用写.value尽量给每项加:key见下文运行截图2.2 必须了解key:key帮 Vue 识别「哪一项是哪一项」在列表增删、排序、过滤时复用/更新 DOM 更准确。li v-foritem in list :keyitem.id {{ item.name }} /li建议优先用唯一且稳定的 id数据库主键、UUID 等不要轻易用index当 key尤其列表会插入、删除、排序时key的值在同一列表里应唯一2.3 遍历对象也可以遍历对象的属性script setup /** * v-for 遍历对象 Demo */ import { reactive } from vue /** 用户信息对象 */ const user reactive({ name: 小明, age: 20, city: 上海 }) /script template ul !-- value属性值key属性名index序号 -- li v-for(value, key, index) in user :keykey {{ index 1 }}. {{ key }}{{ value }} /li /ul /template运行截图2.4 用template包一组元素想为每一项渲染多个相邻标签时用template本身不会生成额外标签template v-foritem in list :keyitem.id h4{{ item.title }}/h4 p{{ item.desc }}/p /template3. 数组更新会驱动视图Vue 能追踪常见数组变更方法调用后列表会自动刷新方法作用push/pop末尾增 / 删shift/unshift开头删 / 增splice按位置增删改sort/reverse排序 / 反转也可以整体替换数组如过滤、映射后赋新值script setup /** * 数组操作 Demo * 演示增删与过滤 */ import { ref } from vue const todos ref([ { id: 1, text: 学习 Vue3 }, { id: 2, text: 写列表 Demo } ]) let nextId 3 /** 追加一项 */ function addTodo() { todos.value.push({ id: nextId, text: 新任务 }) } /** 删除指定 id */ function removeTodo(id) { todos.value todos.value.filter((t) t.id ! id) } /script template button clickaddTodo添加/button ul li v-fortodo in todos :keytodo.id {{ todo.text }} button clickremoveTodo(todo.id)删除/button /li /ul /template运行截图4. v-for 和 v-if不要写在同一个元素上可读性差且容易踩坑。推荐先过滤数据或用template分层!-- 推荐先算好要渲染的列表 -- li v-foritem in activeList :keyitem.id {{ item.name }} /li !-- 或外层 template 过滤内层再渲染 -- template v-foritem in list :keyitem.id li v-ifitem.active{{ item.name }}/li /template空列表提示可以配合条件渲染p v-iflist.length 0暂无数据/p ul v-else li v-foritem in list :keyitem.id{{ item.name }}/li /ul5. 入门综合 Demo一个简易待办列表支持添加、完成切换、删除并用v-if显示空状态。script setup /** * 列表渲染综合 Demo * - v-for渲染待办列表 * - :key用唯一 id 标识每一项 * - 数组方法push / filter / 改属性 * - v-if空列表提示 */ import { ref, computed } from vue /** 待办列表 */ const todos ref([ { id: 1, text: 学习 v-for, done: true }, { id: 2, text: 理解 key 的作用, done: false }, { id: 3, text: 完成列表 Demo, done: false } ]) /** 输入框内容 */ const input ref() /** 下一 id */ let nextId 4 /** 未完成数量 */ const leftCount computed(() todos.value.filter((t) !t.done).length) /** 添加待办 */ function addTodo() { const text input.value.trim() if (!text) return todos.value.push({ id: nextId, text, done: false }) input.value } /** 切换完成状态 */ function toggleTodo(id) { const todo todos.value.find((t) t.id id) if (todo) todo.done !todo.done } /** 删除一项 */ function removeTodo(id) { todos.value todos.value.filter((t) t.id ! id) } /script template h3待办列表/h3 p剩余未完成{{ leftCount }}/p div classrow input v-modelinput placeholder输入待办内容 keyup.enteraddTodo / button clickaddTodo添加/button /div p v-iftodos.length 0暂无待办先添加一条吧/p ul v-else li v-fortodo in todos :keytodo.id :class{ done: todo.done } label input typecheckbox :checkedtodo.done changetoggleTodo(todo.id) / {{ todo.text }} /label button clickremoveTodo(todo.id)删除/button /li /ul /template style .row { margin-bottom: 12px; } .row input { margin-right: 8px; } .done { color: #999; text-decoration: line-through; } ul { padding-left: 0; list-style: none; } li { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; border-bottom: 1px solid #eee; } /style运行效果预期初始显示 3 条待办第 1 条已完成删除线输入内容点「添加」或回车列表末尾多一项勾选复选框完成状态切换剩余数量跟着变点「删除」该项从列表消失删光后出现空状态提示运行截图

相关新闻

计算机毕业设计之扶贫助农与产品合作系统设计与实现

计算机毕业设计之扶贫助农与产品合作系统设计与实现

近年来,科技飞速发展,在经济全球化的背景之下,计算机将进一步提高社会综合发展的效率和速度,计算机技术也会涉及到各个领域,而扶贫助农与产品合作系统在网络背景下有着无法忽视的作用。管理信息系统的开发是一个不断优…

2026/8/9 2:50:28 阅读更多 →
AI辅助编程实战:Claude Code与Harness AI构建Java电商与Python客服系统

AI辅助编程实战:Claude Code与Harness AI构建Java电商与Python客服系统

这次我们来看一个结合了 Claude Code 和 Harness AI 的实战项目,目标是让初学者也能上手开发 Java 电商后台管理系统和 Python 智能客服应用。这不是一个纯理论教程,而是聚焦于如何利用最新的 AI 辅助编程工具,降低开发门槛,提升项…

2026/8/9 2:50:29 阅读更多 →
EMD与LSTM结合的交通流量预测方法及MATLAB实现

EMD与LSTM结合的交通流量预测方法及MATLAB实现

1. 项目背景与核心价值 交通流量预测一直是智能交通系统(ITS)的核心课题。传统时间序列预测方法在面对交通流量的非线性、非平稳特性时往往表现不佳。这个项目提出了一种创新性的解决方案:将经验模态分解(EMD)与长短期记忆网络(LSTM)相结合,充分发挥两种…

2026/8/9 2:50:29 阅读更多 →

最新新闻

元初混沌体系架构 第二卷 第二十五篇 高速航天器动态时空偏移实时校准模型

元初混沌体系架构 第二卷 第二十五篇 高速航天器动态时空偏移实时校准模型

第二十五篇 高速航天器动态时空偏移实时校准模型承启前置 高动态频移收官与全域时空校准升维前篇第二十四篇完整闭环星际超量级多普勒频移高阶补偿算法,彻底解决了星际高速运动引发的频率失锁、相位断裂、动态频偏漂移单维度核心难题,完成了星际通信频域…

2026/8/9 9:08:09 阅读更多 →
Zotero Citation:让学术写作中的引用管理变得轻松高效

Zotero Citation:让学术写作中的引用管理变得轻松高效

Zotero Citation:让学术写作中的引用管理变得轻松高效 【免费下载链接】zotero-citation Make Zoteros citation in Word easier and clearer. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-citation 还在为论文写作中的引用管理而烦恼吗&#xff1f…

2026/8/9 9:08:09 阅读更多 →
浏览器调试器高效使用技巧

浏览器调试器高效使用技巧

Chrome DevTools(浏览器调试器)是前端开发、网页问题排查、性能优化的核心工具。多数开发者日常仅使用元素审查、控制台打印等基础功能,而大量高效的隐藏技巧能将调试效率提升数倍。本文从常用面板进阶、快捷键提速、高级调试、冷门功能四个维…

2026/8/9 9:08:09 阅读更多 →
从零到一:OpenHand开源机械手构建全指南

从零到一:OpenHand开源机械手构建全指南

从零到一:OpenHand开源机械手构建全指南 【免费下载链接】openhand-hardware CAD files for the OpenHand hand designs 项目地址: https://gitcode.com/gh_mirrors/op/openhand-hardware 你是一个文章写手,你负责为开源项目写专业易懂的文章。Op…

2026/8/9 9:08:09 阅读更多 →
Phaser 3实现群体AI:Boids算法详解与性能优化实战

Phaser 3实现群体AI:Boids算法详解与性能优化实战

1. 项目概述:从“3行代码”到群体AI的深度实践 看到“3行代码实现千人群集”这个标题,很多刚接触游戏开发或AI模拟的朋友可能会眼前一亮,觉得这简直是魔法。作为一个在游戏交互和模拟领域摸爬滚打了十多年的老手,我必须说&#xf…

2026/8/9 9:08:09 阅读更多 →
Java集合框架核心原理与面试高频考点解析

Java集合框架核心原理与面试高频考点解析

1. Java集合框架全景解析 作为Java开发者技术面试的必考领域,集合框架的掌握程度直接决定了候选人基础功底的扎实程度。我在技术面试中常遇到候选人能说出ArrayList和LinkedList的区别,却解释不清为什么HashMap加载因子默认是0.75;能背诵Conc…

2026/8/9 9:07:08 阅读更多 →

日新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/8 17:02:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/9 0:45:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/8 17:02:44 阅读更多 →