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

vue2技能树(5)-条件渲染和列表渲染

目录

  • Vue 2 条件渲染详解
    • `v-if` 和 `v-else` 指令
      • 项目示例
    • `v-show` 指令
      • 项目示例
    • `v-if` 和 `v-show` 的区别
    • `v-if` 和 `v-else-if` 指令
      • 项目示例
  • Vue 2 列表渲染详解
    • `v-for` 指令
      • 项目示例
    • 计算属性和方法
      • 项目示例
    • `v-bind:key`
      • 项目示例
    • 使用对象的`v-for`
      • 项目示例
    • `v-for` 的索引
      • 项目示例


👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!


Vue 2 条件渲染详解

条件渲染是Vue.js 2中一个重要的概念,它允许你根据特定的条件来决定是否渲染或显示某个DOM元素。这是构建动态和交互性用户界面的关键部分。以下是对Vue 2条件渲染的多方面详细介绍,包括使用详细的项目实例。

v-ifv-else 指令

v-ifv-else 指令是用于条件渲染的核心指令。它们允许你根据给定的条件来显示或隐藏元素。

项目示例

假设你有一个简单的任务清单应用,你希望根据是否存在任务来显示不同的提示信息。你可以使用v-ifv-else 来实现这一目标。

<div id="app"><h1>任务清单</h1><div v-if="tasks.length > 0"><h2>任务列表:</h2><ul><li v-for="task in tasks">{{ task }}</li></ul></div><div v-else><p>暂无任务。</p></div>
</div>
new Vue({el: '#app',data: {tasks: ['任务1', '任务2', '任务3'],},
});

在这个示例中,根据tasks 数组是否为空,你可以决定是否渲染任务列表或者显示“暂无任务”的提示。

v-show 指令

v-show 指令类似于v-if,但它不是真正的条件渲染,而是使用CSS的display属性来隐藏或显示元素。如果你需要频繁切换元素的可见性,v-show可能更适合。

项目示例

继续上面的任务清单应用示例,你可以使用v-show 来切换任务列表的可见性。

<div v-show="tasks.length > 0"><h2>任务列表:</h2><ul><li v-for="task in tasks">{{ task }}</li></ul>
</div>

在这个示例中,当tasks 数组不为空时,任务列表会显示;当tasks 数组为空时,任务列表会被隐藏,但DOM元素仍然存在。

v-ifv-show 的区别

  • v-if:在条件为假时,元素不会存在于DOM中,因此它对性能有较好的优化。但频繁切换时可能会有一些性能开销。
  • v-show:元素始终存在于DOM中,只是使用CSS的display属性来控制可见性。这在频繁切换时可能更快,但可能会有轻微的性能开销。

你可以根据你的需求和性能优化考虑选择使用v-if还是v-show

v-ifv-else-if 指令

除了v-ifv-else,Vue 2还提供了v-else-if 用于多条件渲染。这在你有多个条件要满足时非常有用。

项目示例

假设你的任务清单应用有三个状态:进行中、已完成和已取消。你可以使用v-else-if 来渲染不同状态的任务。

<div v-if="status === 'inProgress'"><h2>进行中的任务:</h2><ul><li v-for="task in inProgressTasks">{{ task }}</li></ul>
</div>
<div v-else-if="status === 'completed'"><h2>已完成的任务:</h2><ul><li v-for="task in completedTasks">{{ task }}</li></ul>
</div>
<div v-else><h2>已取消的任务:</h2><ul><li v-for="task in canceledTasks">{{ task }}</li></ul>
</div>

在这个示例中,根据status 的值,你可以决定渲染不同状态的任务列表。

条件渲染是Vue 2的强大功能,它使你可以根据数据的变化来控制元素的显示和隐藏,以实现动态和交互性的用户界面。

Vue 2 列表渲染详解

列表渲染是Vue.js 2中一个强大的功能,它允许你轻松地渲染数据列表到DOM中。Vue提供了多种指令和方法来实现列表渲染,包括v-for指令、计算属性和方法。以下是对Vue 2列表渲染的多方面详细介绍,包括使用详细的项目实例。

v-for 指令

v-for 指令是Vue中用于循环渲染元素的核心指令。它允许你在模板中基于数据数组或对象的每个项来重复渲染元素。

项目示例

假设你有一个任务清单应用,你可以使用v-for 来渲染任务列表。

<div id="app"><h1>任务清单</h1><ul><li v-for="task in tasks">{{ task }}</li></ul>
</div>
new Vue({el: '#app',data: {tasks: ['任务1', '任务2', '任务3'],},
});

在这个示例中,v-for 指令循环遍历tasks 数组中的每个任务,并将它们渲染成列表项。

计算属性和方法

除了v-for,你还可以使用计算属性和方法来进行列表渲染。这对于复杂的列表操作非常有用。

项目示例

假设你有一个包含任务的数组,并希望渲染已完成的任务的数量。

<div id="app"><h1>任务清单</h1><ul><li v-for="task in completedTasks">{{ task }}</li></ul><p>已完成任务数:{{ completedTaskCount }}</p>
</div>
new Vue({el: '#app',data: {tasks: [{ text: '任务1', completed: true },{ text: '任务2', completed: false },{ text: '任务3', completed: true },],},computed: {completedTasks: function() {return this.tasks.filter(task => task.completed);},completedTaskCount: function() {return this.completedTasks.length;},},
});

在这个示例中,completedTasks 计算属性用于过滤已完成的任务,并将它们渲染成列表项。completedTaskCount 计算属性用于计算已完成任务的数量。

v-bind:key

在使用v-for 进行列表渲染时,你应该为每个渲染的元素提供一个唯一的key 属性。这有助于Vue更有效地管理DOM元素。

项目示例

<div id="app"><ul><li v-for="task in tasks" v-bind:key="task.id">{{ task.text }}</li></ul>
</div>

在这个示例中,v-bind:key 用于为每个任务列表项提供一个唯一的标识,通常使用任务的ID。

使用对象的v-for

除了数组,你还可以使用对象进行v-for 进行列表渲染。

项目示例

假设你有一个包含任务的对象,每个任务都有一个唯一的键。

<div id="app"><ul><li v-for="(task, key) in tasks" v-bind:key="key">{{ task }}</li></ul>
</div>
new Vue({el: '#app',data: {tasks: {task1: '任务1',task2: '任务2',task3: '任务3',},},
});

在这个示例中,v-for 用于遍历任务对象,key 作为任务的唯一标识。

v-for 的索引

除了元素值,v-for 还可以提供索引值。

项目示例

<div id="app"><ul><li v-for="(task, index) in tasks" v-bind:key="index">{{ task }}</li></ul>
</div>

在这个示例中,index 是任务在数组中的索引值。

列表渲染是Vue 2的一个强大特性,它使你可以轻松地渲染数据列表,无论是使用v-for指令、计算属性还是方法,都提供了多种方式来满足不同的需求。这使得Vue成为一个出色的前端框架,用于构建动态和交互性的用户界面。

相关文章:

vue2技能树(5)-条件渲染和列表渲染

目录 Vue 2 条件渲染详解v-if 和 v-else 指令项目示例 v-show 指令项目示例 v-if 和 v-show 的区别v-if 和 v-else-if 指令项目示例 Vue 2 列表渲染详解v-for 指令项目示例 计算属性和方法项目示例 v-bind:key项目示例 使用对象的v-for项目示例 v-for 的索引项目示例 &#x1f…...

MySQL基本操作之创建数据库

1、大小写敏感 一般大家都默认使用:小写 在MySQL中,大小写敏感性有两个方面的规定:lower_case_file_system和lower_case_table_names。 lower_case_file_system:指定操作系统文件系统是否对大小写敏感。 当设置为ON时,表示文件系统对大小写不敏感;当设置为OFF时,表示…...

8.对象贴地

愿你出走半生,归来仍是少年&#xff01; 在场景中&#xff0c;有时候需要对地物&#xff08;房屋、楼宇&#xff09;进行贴地处理&#xff0c;或者说相对地面高度&#xff08;井盖、井室&#xff09;进行设置。 通过自定义的Terrain切片以及影像瓦片构建的三维场景应该如何获取…...

AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同

Hello大家好&#xff0c;我们今天继续讨论AWS Lambda的内容。 Lambda函数的版本 Lambda函数的版本和别名是辅助资源&#xff0c;我们可以通过创建这些资源管理函数的部署和调用。 首先&#xff0c;让我们来看一下Lambda 函数版本的概念。您可以使用版本来管理函数的部署。例…...

flutter doctor检测环境,出现CocoaPods installed but not working

1. 安装flutter, 地址: 安装和环境配置 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 2. 安装成功后&#xff0c;通过flutter doctor检测环境。以mac为例&#xff0c;出现了CocoaPods installed but not working 错误提示时&#xff0c;以下为解决方案: 2.1 rvm i…...

Python 条件和 if 语句

Python支持来自数学的通常逻辑条件&#xff1a; 等于&#xff1a;a b不等于&#xff1a;a ! b小于&#xff1a;a < b小于或等于&#xff1a;a < b大于&#xff1a;a > b大于或等于&#xff1a;a > b 这些条件可以以多种方式使用&#xff0c;最常见的是在"i…...

行业领先的三个企业正在利用聊天机器人变得更强

聊天机器人已成为客户服务领域的革命者&#xff0c;深刻地改变了企业与客户互动的方式。这些虚拟助手简化了交互&#xff0c;提供了24/7全天候高效和个性化的支持。凭借先进的技术和自然语言处理能力&#xff0c;聊天机器人擅长快速处理查询。 效率是聊天机器人的关键优势。它…...

「Git|场景案例」从项目中删除之前commit过的文件并且让git不追踪删除操作

本文主要介绍如何在git中删除文件但是让git不追踪这些删除操作 文章目录 场景说明解决方案删除一个文件删除一个文件夹以及子文件夹 场景说明 自己在使用react开发一个包含大量媒体文件的网站时&#xff0c;项目初期临时将这些媒体文件都放在项目中&#xff0c;直接使用访问本…...

一款.NET Core开源的基于Vue+ElementUI开发的博客系统 - StarBlog

前言 今天给大家推荐一款.NET Core开源的基于VueElementUI开发的博客系统 - StarBlog。该项目配套详细的文章教程&#xff0c;可以作为 .Net Core 入门项目学习。 官方项目介绍 StarBlog支持Markdown导入的博客。后端基于最新的.Net6和Asp.Net Core框架&#xff0c;遵循REST…...

用git stash暂存修改

git stash命令用于保存当前工作目录的临时状态&#xff0c;包括暂存区和已修改但未暂存的文件。它会将这些修改保存在一个临时区域&#xff08;即“堆栈”&#xff09;中&#xff0c;让你能够回到一个干净的工作目录&#xff0c;可以进行其他操作。等到你完成其他任务后&#x…...

一个适合练手的接口测试实战项目——慕慕生鲜

前言 最近很多粉丝找小月要接口测试项目练练手&#xff0c;看看实力&#xff01;今天&#xff0c;它来了 慕慕生鲜&#xff0c;完整版&#xff0c;文末有福利&#xff01; 干货来咯&#xff0c;收藏好&#xff01; 1. 接口测试需求分析 常见接口文档提供的两种方式 ①wor…...

window10/11 光学系统建模之Light Tools8.6 软件安装教程(亲测可用+附带免费资源可直接下载)

1.下载链接 &#xff08;免费分享&#xff09; 链接&#xff1a;https://pan.baidu.com/s/1qVubyRSC93xT-GKeK-k3ow 提取码&#xff1a;vkho 2.安装顺序 即按照图里的1234的顺序先安装完注册表&#xff0c;驱动&#xff0c;和lighttools的程序 我个人在win10系统安装这些程…...

Vue3+ElementPlus el-date-picker时间选择器,设置最多选择60天区间内,必须选择大于今天

Vue3ElementPlus el-date-picker时间选择设置&#xff0c; 必须选择大于今天&#xff1b;最多选择60天区间内&#xff1b; 使用disabled-date&#xff1a; 具体实现代码&#xff1a; <el-date-pickerv-model"state.queryParams.dateTime":editable"false&q…...

2022年亚太杯APMCM数学建模大赛B题高速列车的优化设计求解全过程文档及程序

2022年亚太杯APMCM数学建模大赛 B题 高速列车的优化设计 原题再现&#xff1a; 2022年4月12日&#xff0c;中国高铁复兴号CR450动车组在开放线上成功实现单车时速435公里&#xff0c;相对速度870公里&#xff0c;创造了高铁动车组列车穿越开放线和隧道速度的世界纪录。新一代…...

OSI网络分层模型

OSI英文全文是Open System Interconnection Reference Model&#xff0c;翻译成中文就是开放式系统互联通信参考模型。 OSI模型分成了七层&#xff0c;部分层次与 TCP/IP 很像&#xff0c;从下到上分别是&#xff1a; 第一层&#xff1a;物理层&#xff0c;网络的物理形式&…...

EOS区块链keosd的RPC API

list_wallets 查看钱包列表 post v1/wallet/list_walletsapi: http://127.0.0.1:8888/v1/wallet/list_walletsparams: 无returns: ["testnet *" ]testnet&#xff1a;钱包名称create 创建钱包 post v1/wallet/createapi: http://127.0.0.1:8888/v1/wallet/createpa…...

React +AntD + From组件重复提交数据(已解决)

开发场景&#xff1a; react Hooks andt 提交form表单内容给数据库(使用antd的form组件) 问题描述 提交是异步的&#xff0c;请提交方式是POST 方式 提交表单内容给后端&#xff0c;却产生了两次提交记录&#xff08;当然&#xff0c;数据新增了两条数据&#xff09;。可以…...

spring的简单使用(配合Druid操作数据库)

文章目录 准备数据pom.xml文件中引用需要的库准备好dao层接口和service层接口和实现类准备好 jdbc.properties 和 user.properties编写Druid的jdbcConfig配置类编写spring的配置类SpringConfig编写Dao层的实现类的逻辑测试类参考文献 准备数据 create database if not exists …...

10.20作业

#include “widget.h” #include “ui_widget.h” Widget::Widget(QWidget *parent) QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); t new QTimer(this); connect(t, &QTimer::timeout, this, &Widget::timeout_Slot); ui->text->setPlacehold…...

笔记1 Compute Shaders

Wending 2022/10/29 15:43:54 Compute Shaders是在GPU运行却又在普通渲染管线之外的程序&#xff0c;通过Compute Shader我们可以将大量可以并行的计算放到GPU中计算从而节省CPU资源 Wending 2022/10/29 15:44:27 反正不是传统的shader 不常用 博毅创为Blake老师 2022/10/29 15…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...