Vue内置指令——v-show和v-if指令

本文详细介绍了Vue.js中的v-show和v-if指令,包括它们的原理、实现方式及两者之间的区别。v-show通过CSS的display属性控制元素显示隐藏,而v-if会销毁或重建DOM元素。在频繁切换时使用v-show更优,初始渲染少变时选择v-if。了解这些区别有助于更好地选择适合的条件渲染策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

一、v-show指令

1、原理

2、实现

二、v-if指令

1、原理

2、实现

三、v-show和v-if指令的区别

1、控制手段不同

2、编译过程不同

3、编译条件不同

4、性能消耗不同

四、v-show和v-if使用场景


前言

首先需要了解Vue的渲染逻辑:

  • 将模板template解析成AST;
  • 再将AST转化为Render函数;
  • 通过Watcher监听数据的变化;
  • 当数据发生变化时,Render函数执行生成虚拟VNode节点,该节点包含创建DOM节点所需信息;
  • 通过patch方法,对比新旧VNode对象,通过DOM diff算法,添加、修改、删除真实DOM节点。

Vue中指令都是带有v-的特殊属性,这些指令主要是用来控制DOM元素的行为,例如最简单的显示、隐藏。本文将讲解Vue中非常常用的两个条件指令—— v-show 和 v-if 。

一、v-show指令

1、原理

v-show指令是根据条件显示DOM元素的指令,可以用来动态控制DOM元素的显示和隐藏。v-show后面跟的是判断条件,不管初始条件是什么,元素总是会被渲染。

语法:

v-show="判断变量"

当v-show值为false时,绑定DOM的 display:none 当v-show值为true时,绑定DOM会 移除display:none ,此时并不是把display变为block,而是保持元素style的原始性,也就是说,不管初始条件是什么,元素总是会被渲染。

2、实现

从实现效果可以看出DOM元素始终是存在的,v-show只是利用元素的display属性控制着元素的显示隐藏。

实现效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值