Vue常用指令v-if与v-show的区别浅析

目录
  • 前言
  • 1. v-show
  • 2. v-if
  • 3. v-show和v-if的区别
    • 1. 在原理方面的区别
    • 2. 在使用应用场景方面的区别
  • 总结

前言

v-show 和v-if 是比较常用的Vue指令,经常用来判断渲染部分代码块,但两者具体的区别在哪里呢 ???

首先我们可以来看一下Vue中文社区说明文档的介绍:

Vue中文社区说明文档中简单来说是:初始渲染的时候进行条件判断展示;

1. v-show

v-show指令的作用是:根据真假值切换元素的显示状态,是响应式的

语法表达v-show = " 表达式 "

原理是修改元素的的CSS属性(display)来决定实现显示还是隐藏

指令后面的内容最终都会解析为布尔值

值为真(true)的时候元素显示,值为假(false)的时候元素隐藏

数据改变之后呢对应的元素的显示状态也是会同步更新的

<body>
		<div id="app">
			<input type="button" value="切换显示" @click="changeIsShow" />
			<p v-show="isShow">不装了,我摊牌了,没错你要找的就是我</p>
		</div>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<script>
			var  app = new Vue({
				el:"#app",
				data:{
					isShow:false
				},
				methods:{
					changeIsShow(){
						this.isShow = !this.isShow
					}

				}
			})
		</script>
	</body>

2. v-if

v-if指令的作用:根据表达式的真假切换元素的显示状态

v-if = "表达式"

本质是通过操纵dom元素来进行切换显示

表达式的值为true的时候元素存在于dom树中,为false的时候从dom树中移除

<body>
		<div id="app">
			<input type="button" value="点我切换显示" @click="changeIsShow" />
			<p v-if="isShow">不装了,我摊牌了,没错你要找的就是我</p>
		</div>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<script>
			var  app = new Vue({
				el:"#app",
				data:{
					isShow:false
				},
				methods:{
					changeIsShow(){
						this.isShow = !this.isShow
					}
				}
			})
		</script>
	</body>

3. v-show和v-if的区别

1. 在原理方面的区别

  • v-show指令:元素始终被渲染到HTML,它只是简单的伪元素设置css的style属性,当不满足条件的元素被设置style=“display:none”的样,是通过修改元素的的CSS属性(display)来决定实现显示还是隐藏
  • v-if指令:满足条件是会渲染到html中,不满足条件时是不会渲染到html中的,是通过操纵dom元素来进行切换显示

2. 在使用应用场景方面的区别

  • v-if需要操作dom元素,有更高的切换消耗.
  • v-show只是修改元素的的CSS属性有更高的初始渲染消耗。
  • 如果需要非常频繁的切换,建议使用v-show较好,如果在运行时条件很少改变,则使用v-if较好

总结

到此这篇关于Vue常用指令v-if与v-show区别的文章就介绍到这了,更多相关Vue指令v-if与v-show区别内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • vue中的v-if和v-show的区别详解

    v-if和v-show的区别是前端面试中常问的基础知识点,v-if.v-show顾名思义就是用来判断视图层展示效果的.那么具体是怎么展示呢?v-if和v-show的区别又是什么呢? 首先我们可以来看一下Vue中文社区说明文档的介绍: Vue中文社区说明文档中简单来说是:初始渲染的时候进行条件判断展示: 在实际开发中我们会经常使用到v-if和v-show来进行判断展示,我们可以这么理解: <div class="tc" v-if="pload && lis

  • 关于vuejs中v-if和v-show的区别及v-show不起作用问题

    1.官网概念描述 v-if 是'真正的'条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建. v-if 也是惰性的,如果在初始渲染时条件为假,那么什么都不做- - 直到条件第一次为真的时候才会开始渲染条件块,相比之下,v-show就简单得多- - 不管初始条件是什么,元素总会被渲染,并且只是简单的基于css进行切换. 一般来说,v-if 有更高的切换开销,而 v-show 有更高的出事渲染开销.因此,如果需要非常频繁的切换,那么使用v-show好一点;如果在运行时条

  • Vue.js使用v-show和v-if的注意事项

    关于两者的区别,官网是这样说的: 在切换 v-if 块时,Vue.js 有一个局部编译/卸载过程,因为 v-if 之中的模板也可能包括数据绑定或子组件.v-if 是真实的条件渲染,因为它会确保条件块在切换当中合适地销毁与重建条件块内的事件监听器和子组件. v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做--在条件第一次变为真时才开始局部编译(编译会被缓存起来). 相比之下,v-show 简单得多--元素始终被编译并保留,只是简单地基于 CSS 切换. 一般来说,v-if 有更高的切换

  • 在vue中使用el-tab-pane v-show/v-if无效的解决

    我就废话不多说了,大家还是直接看代码吧~ 解决方法如下: <template> <el-tabs v-model="settype" @tab-click="tabClick" ref="tabs"> <el-tab-pane label="广告位设置" name="bannerset">广告位设置</el-tab-pane> <el-tab-pane

  • vue学习笔记之v-if和v-show的区别

    v-if vs v-show v-if 是"真正的"条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建. v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做--直到条件第一次变为真时,才会开始渲染条件块. 相比之下, v-show 就简单得多--不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换. 一般来说, v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销.因此,如果需要非常频繁地切换,则使用 v-sh

  • 详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on

    Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会为绑定的目标元素添加一些特殊的行为,我们可以将指令看作特殊的HTML特性(attribute). Vue.js提供了一些常用的内置指令,如下: v-if指令 v-for指令 v-show指令 v-else指令 v-bind指令 v-on指令 1:v-if指令 v-if指令是条件渲染指令,它根据表达式的真假来删除和插入元素,它的基本语法如下: v-if="expression"

  • vue中v-show和v-if的异同及v-show用法

    一.官方解释: 1.v-if 是"真正"的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建. 2.v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做--直到条件第一次变为真时,才会开始渲染条件块. 3.相比之下,v-show 就简单得多--不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换. 4.一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销.因此,如果需要非常频繁地切换,则使用 v- sh

  • 深入理解vue.js中的v-if和v-show

    本文主要给大家介绍了关于vue.js中v-if和v-show的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 1.共同点 都是动态显示DOM元素 2.区别 (1)手段:v-if是动态的向DOM树内添加或者删除DOM元素:v-show是通过设置DOM元素的display样式属性控制显隐: (2)编译过程:v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件:v-show只是简单的基于css切换: (3)编译条件:v-if是惰性的,如果初始条件为假,

  • vue常用指令代码实例总结

    vue常用内置指令 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>12_指令_内置指令</title> <style> [v-cloak] { display: none } </style> </head> <body> <!-- 常用内置指令 v

  • Vue常用指令v-if与v-show的区别浅析

    目录 前言 1. v-show 2. v-if 3. v-show和v-if的区别 1. 在原理方面的区别 2. 在使用应用场景方面的区别 总结 前言 v-show 和v-if 是比较常用的Vue指令,经常用来判断渲染部分代码块,但两者具体的区别在哪里呢 ??? 首先我们可以来看一下Vue中文社区说明文档的介绍: Vue中文社区说明文档中简单来说是:初始渲染的时候进行条件判断展示: 1. v-show v-show指令的作用是:根据真假值切换元素的显示状态,是响应式的 语法表达v-show =

  • vue常用指令实现学生录入系统的实战

    一.功能描述: 1,对于输入的内容进行简单的判断. 2,实现简单的增加和删除功能. 二.运行情况 图1 页面初始化情况 点击"添加新用户"如下: 图2: 添加一个新用户 图3:删除Anna和张三两个用户 全部代码如下所示:(直接复制到一个.html文件即可成功运行) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <

  • Vue常用指令V-model用法

    v-model这个指令只能用在<input>, <select>,<textarea>这些表单元素上,所谓双向绑定,指的就是我们在js中的vue实例中的data与其渲染的dom元素上的内容保持一致,两者无论谁被改变,另一方也会相应的更新为相同的数据. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title&

  • Vue常用指令详解分析

    Vue入门 Vue是一个MVVM(Model / View / ViewModel)的前端框架,相对于Angular来说简单.易学上手快,近两年也也别流行,发展速度较快,已经超越Angular了.比较适用于移动端,轻量级的框架,文件小,运行速度快.最近,闲来无事,所以学习一下Vue这个流行的框架,以备后用. 一.指令 v-model 多用于表单元素实现双向数据绑定(同angular中的ng-model) v-for 格式: v-for="字段名 in(of) 数组json" 循环数组或

  • Vue学习之常用指令实例详解

    本文实例讲述了Vue常用指令.分享给大家供大家参考,具体如下: 1.创建一个vue实例 vue的一个特点就是数据驱动界面,一旦对js中的数据进行修改,界面中用到数据的地方也会立马做出更改.为了对界面进行操纵,需要先获取到界面的标签元素,并实例化一个vue实例. 例如在HTML创建一个div: <div id="app"> <p>{{msg}}</p> </div> 在js中将其实例化为vue对象: let app=new Vue({ el

  • 详解Vue中的基本语法和常用指令

    什么是vue.js Vue.js是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于Weex) Vue.js 是前端的**主流框架之一**,和Angular.js.React.js 一起,并成为前端三大主流框架! Vue.js 是一套构建用户界面的框架,**只关注视图层**,它不仅易于上手,还便于与第三方库或既有项目整合.(Vue有配套的第三方类库,可以整合起来做大型项目的开发) Vue

  • 又一款MVVM组件 Vue基础语法和常用指令(1)

    前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue也确实挺火,各种入门博文眼花缭乱,博主也不敢说写得多好,就当是个学习笔记,有兴趣的可以看看. 一.MVVM大比拼 关于MVVM,原来在介绍knockout.js的时候有过讲解,目前市面上比较火的MVVM框架也是一抓一大把,比如常见的有Knockout.js.Vue.js.React.Angularj

  • vue.js语法及常用指令

    Vue.js是当下很火的一个JavaScript MVVM(Model-View-ViewModel)库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们能够快速地上手并使用Vue.js. 如果你之前已经习惯了用jQuery操作DOM,学习Vue.js时请先抛开手动操作DOM的思维,因为Vue.js是数据驱动的,你无需手动操作DOM.它通过一些特殊的HTML语法,将DOM和数据绑定起来.一旦你创建了绑定,DOM将和数据保持同

  • Vue.js常用指令的使用小结

    1.数据渲染:v-text.v-html.{{}} 1.1 v-text 详细:更新元素的 textContent.如果要更新部分的 textContent ,需要使用 {{ Mustache }} 插值. 实例: <div id="app"> <p v-text="message"></p> </div> <script> new Vue({ el:'#app', data: { message:'Hel

随机推荐