Vue|数据渲染

Vue 是如何将编译器中的代码转换为页面真实元素的?在Vue 中,自带了模板渲染,而模板的语法也非常简洁易懂。
精彩专栏持续更新↓↓↓
微信小程序实战开发专栏

  • 一. 数据渲染
    • 1.1 条件渲染
      • v-if
      • v-show
    • 1.2 列表渲染
      • v-for
    • 1.3 小结

一. 数据渲染

1.1 条件渲染

vue条件渲染指令包括v-if、v-else、v-else-if、v-show。v-if指令用于条件性地渲染一块内容,这块内容只会在指令的表达式返回真值时才被渲染;v-show根据一个条件决定是否显示元素或者组件,依赖于控制display属性。

v-if

在开始前准备如下,创建对应的分录文件夹以及页面

在这里插入图片描述

在html中创建对应的标签及vue实例

在这里插入图片描述

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>数据渲染</title>
    <script src="../js/vue.js" type="text/javascript"></script>
</head>
<body>
    <!-- 准备好一个容器 -->
    <div id="root">
        
    </div>


    <script type="text/javascript">
        //Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
        // 创建vue实例
        const vm = new Vue({
            el:'#root',
            //函数式
            data:function(){
                return{
                    name:'摔跤猫子',
                };
            },
            methods:{
                
            },
        });
        
    </script>
</body>
</html>

需求来了,如何动态操作div的显示隐藏呢? 在html中隐藏一个div这个功能想必大家都很擅长,直接给div加一个display:none就ok,当然也可以通过操作DOM的方式来给这个div追加一个样式,不过归根结底还是不够灵活,那么在vue中该如何实现呢?

在这里插入图片描述

<div style="display:none;">
    {{name}}
</div>

在vue中是有着条件渲染指令的,在实例中定义一个bool类型的字段,同时在div标签中使用v-if指令

在这里插入图片描述

在这里插入图片描述

可以通过素材看出html中div的显示隐藏是可以通过在data中定义的变量来控制的

在这里插入图片描述

在网页右击查看源代码,可以看到整个div并没有隐藏,而是直接被移除掉了,这是因为v-if是真正的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

在这里插入图片描述

既然有v-if,那必然也有else了,通过案例来更好的来理解v-if条件渲染,在html中绘制标签如下,通过点击按钮的方式来控制div显示隐藏

在这里插入图片描述

 <!-- v-if -->
 <div v-if="show">
     <h2>{{name}}</h2>
 </div>
 <div v-else>
     <h2>{{name}}被隐藏了</h2>
 </div>
 
 <button type="button" @click="switchDiv()">点我</button>

同时在vue实例的methods中实现对应的click事件

在这里插入图片描述

 switchDiv(){
    this.show = !this.show;
 },

通过下方的素材可以更加直观的看到,div标签在不断的销毁和重建

在这里插入图片描述
在这里插入图片描述

v-show

简单的业务场景可以用v-if,如果在切换频繁的场景用v-if可能就不大合适了,在数据量很大或者样式复杂的页面反复构建的过程可能会给用户带来不好的体验,那么有没有一种可替代方案来解决呢?

v-show关键字,使用方法跟v-if一致,通过在data中定义的bool字段来控制其显示隐藏

在这里插入图片描述

<div v-show="show">
	<h2>{{name}}</h2>
</div>

通过素材图可以很清晰的看到,div标签始终都在,只不过当值为false时,给它赋予了一个display的样式

在这里插入图片描述

1.2 列表渲染

列表渲染通俗易懂一点的解释就是获取列表中的各种数据,并将它展示出来

在这里插入图片描述

在这里插入图片描述

v-for

在vue中通过v-for指令来展示,在data中定义好需要遍历的数据源

在这里插入图片描述

articleList:[
	{
		title:'微信小程序|基于小程序+云开发制作一个菜谱小程序',
		author:'摔跤猫子',
	},
	{
		title:'还在想假期去哪玩?直接做一个旅游攻略小程序',
		author:'摔跤猫子',
	}
],

在html代码中直接将v-for定义在li标签中

在这里插入图片描述

<ul>
	<li v-for="(item,index) in articleList">{{item.title}}-{{item.author}}</li>
</ul>

在这里插入图片描述

1.3 小结

  • 条件渲染v-if指令
  • 使用场景:切换频率较低
  • 特点:切换时不符合表达式条件的DOM元素是直接被移除,而非显示隐藏,再次切换渲染时则需要重新构建
  • 注意:v-if 可与 v-else-if、v-else同时使用,但是在html结构中不能被打断,中间不能掺杂其他元素
  • 条件渲染v-show指令
  • 使用场景:切换频率较高
  • 特点:不符合表达式条件的DOM元素未被移除,而是使用样式进行隐藏
  • 列表渲染v-for指令
  • 用于展示列表数据
  • 语法 v-for = (item,index) in 数据源
  • 可遍历展示数组、对象、字符串等形态数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/13270.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络性能定位

根据tcp协议进行分析 目录 一、SYN_RECV阶段 1.1 确定半连接队列是否有丢包&#xff1a; 1.2 确定全连接队列是否有丢包现象 二、close_wait 三、TIME_WAIT 四、抓包分析 重要字段&#xff1a; WireShark出现的常见提示 服务端存在问题的 客户端存在问题的 socket关闭…

机器视觉工程师必须知道机器视觉精度要思考哪些

​在和客户交流项目技术要求,这个项目,我要求的精度是0.01mm? 第一个问题:什么是精度? 精度要求0.01mm: 1.视觉重复性极差?静态?动态? 2.视觉与第三方相关性差异?极差?相关性系数? 3.整体系统误差?机械重复性误差? 4.产品尺寸公差? 第二个问题:精度与公差…

【杂凑算法篇】密码杂凑算法的安全强度

【杂凑算法篇】密码杂凑算法的安全强度 杂凑&#xff08;哈希&#xff09;算法安全强度—【蘇小沐】 文章目录 【杂凑算法篇】密码杂凑算法的安全强度&#xff08;一&#xff09;安全强度&#xff08;Security Strength)&#xff08;二&#xff09;杂凑算法的安全强度与对比总…

计算机网络笔记(方老师408课程)(持续更新)

文章目录 前言互联网概述互联网发展的三个阶段互联网标准化机构 互联网的组成边缘部分的通信方式核心部分的交换方式 我国计算机网络的发展计算机网络的类别计算机网络的性能速率、带宽、吞吐量时延时延带宽积往返时间RTT&#xff08;Round-Trip Time&#xff09;利用率非性能特…

【Linux】进程状态

文章目录 &#x1f4d6; 前言1. 父进程与子进程2. fork函数创建子进程2.1 认识fork函数&#xff1a;2.2 fork函数两个返回值的原因&#xff1a;2.3 fork函数的返回值意义&#xff1a; 3. 进程状态3.1 运行状态&#xff08;R&#xff09;&#xff1a;3.2 终止状态&#xff08;X&…

FPGA基于SFP光口实现10G万兆网UDP通信 10G Ethernet Subsystem替代网络PHY芯片 提供工程源码和技术支持

目录 1、前言2、我这里已有的UDP方案3、详细设计方案4、vivado工程详解5、上板调试验证并演示6、福利&#xff1a;工程代码的获取 1、前言 目前网上的fpga实现udp基本生态如下&#xff1a; 1&#xff1a;verilog编写的udp收发器&#xff0c;但不带ping功能&#xff0c;这样的代…

Spring AOP核心概念与操作示例

AOP 核心概念 还记得我们Spring有两个核心的概念嘛&#xff1f;一个是IOC/DI&#xff0c;另一个是AOP咯。 先来认识两个概念&#xff1a; AOP(Aspect Oriented Programming)面向切面编程&#xff1b;作用&#xff1a;在不惊动原始设计的基础上为其进行功能增强&#xff0c;类…

《springboot实战》第六章 实现自定义全局异常处理

前言 springboot实现自定义全局异常处理&#xff0c;以及统一返回数据。 1、分析 首先&#xff0c;实现全局异常的流程 从图中可以看到&#xff0c;实现全局异常会需要这样几个类&#xff1a; 自定义异常接口类自定义异常枚举类自定义异常类自定义异常处理类自定义全局响应…

ROS学习第十二节——话题通信控制小乌龟

1.基操一下 首先打开小乌龟程序和键盘控制程序 rosrun turtlesim turtlesim_node rosrun turtlesim turtle_teleop_key 查看话题列表 rostopic list 打开计算图查看具体是那个话题在起作用 rqt_graph 从上图可以看到两个节点之间的话题是 /turtle1/cmd_vel 使用以下命令获…

linux及openEuler破解root密码

第一步&#xff1a;开机的时候按键盘的字母 E 键&#xff0c; 进入引导模式 第二步&#xff1a;进入引导模式 &#xff1a;找到linux这一行&#xff0c;按键盘上的end 键&#xff0c;跳转到行尾&#xff0c;输入&#xff1a; init/bin/sh 修改完后&#xff0c;按键盘上的 ctr…

哪种无线耳机音质最好?盘点2023四款好音质蓝牙耳机

随着蓝牙技术的发展&#xff0c;近几年人们对于蓝牙耳机的需求也在不断增加。但&#xff0c;蓝牙耳机自始至终都是用来听的&#xff0c;所以音质对于一款蓝牙耳机来说还是很重要的。下面&#xff0c;我来给大家推荐四款好音质蓝牙耳机&#xff0c;可以当个参考。 一、南卡小音舱…

JavaEE-轻松了解网络原理之TCP协议

目录 TCP协议TCP协议数据格式TCP原理确认应答超时重传连接管理三次握手四次挥手 滑动窗口流量控制拥塞控制延迟应答捎带应答面向字节流异常问题 TCP协议 TCP&#xff0c;即Transmission Control Protocol&#xff0c;传输控制协议. TCP协议数据格式 16位源端口号与16位目的端…

Doris(8):数据导入(Load)之Insert Into

Insert Into 语句的使用方式和 MySQL 等数据库中 Insert Into 语句的使用方式类似。但在 Doris 中&#xff0c;所有的数据写入都是一个独立的导入作业。所以这里将 Insert Into 也作为一种导入方式介绍。 主要的 Insert Into 命令包含以下两种&#xff1b; INSERT INTO tbl S…

微服务 - Redis缓存 · 数据结构 · 持久化 · 分布式 · 高并发

一、分布式解决 Session 的问题 在单站点中&#xff0c;可以将在线用户信息存储在Session中&#xff0c;随时变更获取信息&#xff1b;在多站点分布式集群如何做到Session共享呢&#xff1f;架设一个Session服务&#xff0c;供多服务使用。 频繁使用的数据存在DB端&#xff0…

如何使用镭速保护云存储数据安全

近年来&#xff0c;随着云计算的发展&#xff0c;远程系统上的数据存储变的越来越重要。云存储是一个以数据存储和管理为核心的云计算系统&#xff0c;给我们提供了一种全新的数据信息存储模式。但是&#xff0c;可以从全球任何地方访问和检索相同的数据。所需要的只是一个简单…

protobuf序列化原理、安装与应用

目录 protobuf序列化 protobuf的原理 protobuf 的安装 编译message文件 应用protobuf protobuf序列化 protobuf是一种比json和xml等序列化工具更加轻量和高效的结构化数据存储格式&#xff0c;性能比json和xml真的强很多&#xff0c;毕竟google出品。 官网&#xff1a;https:…

第八章 法律关系

目录 第一节 法律关系的概念 一、法律关系的定义与特征 二、法律关系的种类 &#xff08;一&#xff09;纵向&#xff08;隶属&#xff09;的法律关系和横向&#xff08;平权&#xff09;的法律关系 &#xff08;二&#xff09;单向&#xff08;单务&#xff09;法律关系、双…

Dear ImGui结合CMake实现基于GLFW和OpenGL3的入门级hello world代码

Dear ImGui结合CMake实现基于GLFW和OpenGL3的入门级hello world代码 如需转载请标明出处&#xff1a;https://blog.csdn.net/itas109 技术交流&#xff1a;129518033 环境&#xff1a; OS: windows 10 / Ubuntu 22.04 imgui: 1.89.5 glw: 3.3.8前言 Dear ImGui 是一个 用于…

outlook邮箱pc/mac客户端下载 含最新版

新的 Outlook for Windows or mac 为 Outlook 应用带来了最新功能、智能辅助功能和新的新式简化设计。 你可以根据自己的风格定制它&#xff0c;并使用新的 Outlook for Windows/mac 执行更多操作&#xff01; 览版&#xff0c;与我们一起开始旅程&#xff0c;并帮助我们塑造新…

leetcode142. 环形链表 II

给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数…