Vue中v-if和v-show的比较

v-if和v-show都可以控制元素是否在页面上显示,下面两个例子说明v-if和v-show的用法。

示例代码:v-if

 <!-- 下面的代码可以显示p标签,因为v-if的参数值表达式判断是true --><div id="app"><!-- v-if可以通过判断表达式的真假动态的插入和移除元素 --><p v-if="key == 1">橘猫吃不胖</p></div><script>var vm = new Vue({el: "#app",data: {key: 1 // 显示p标签}})</script><!-- 下面的代码不可以显示p标签,因为v-if的参数值表达式判断是false --><div id="app"><!-- v-if可以通过判断表达式的真假动态的插入和移除元素 --><p v-if="key == 1">橘猫吃不胖</p></div><script>var vm = new Vue({el: "#app",data: {key: 0 // 不显示p标签}})</script>

示例代码:v-show

    <!-- 下面代码可以显示p标签,v-show参数值为true --><div id="app"><p v-show="isShow">橘猫吃不胖</p></div><script>var vm = new Vue({el: "#app",data: {isShow: true // 显示p标签}})</script><!-- 下面代码不能显示p标签,v-show参数值为false --><div id="app"><p v-show="isShow">橘猫吃不胖</p></div><script>var vm = new Vue({el: "#app",data: {isShow: false // 隐藏p标签}})</script>

但是二者是有区别的,具体如下:

  • 实现方式不同:v-if底层采用的是appendChild来实现的,v-show通过样式的display控制标签的显示,正因为实现方式上面有差异,导致了他们的加载速度方面产生了差异;
  • 加载性能不同:v-if加载速度更快,v-show加载速度慢
  • 切换开销不同:v-if切换开销大,v-show切换开销小。

v-if是惰性的,它是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建;v-show 也是惰性的,如果在初始渲染时条件为假,则什么也不做,直到条件第一次变为真时,才会开始渲染条件块。相比之下,v-show 就简单得多,不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换

一般来说,v-if有更高的切换开销,而v-show有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用v-show较好,如果在运行时条件很少改变,则使用v-if较好。

Vue中v-if和v-show的比较相关推荐

  1. Vue中常用的8种v指令

    Vue中常用的8种v指令 根据官网的介绍,指令 是带有 v- 前缀的特殊属性.通过指令来操作DOM元素 指令 功能 v-text="变量/表达式" 文本的设置 字符串变量+数字可以 ...

  2. vue v html安全,vue 中控制v-html 中的样式,但不影响全局的小技巧

    我们知道在 Vue 中,style可以用两种方式来导入: // method1 @import ('./a.css'); //method2 复制代码 但是不管哪一种,导进的css文件都是应用于全局的 ...

  3. Oracle 中一些主要的V$视图种类

    Oracle 中一些主要的V$视图种类 类  别 描述和相关的V$视图 数据库实例 有关实际数据库实例的信息 V$ 视 图:  V$ACTIVE_INSTANCES,V$BGPROCESS,V$DAT ...

  4. 关于v$process与v$session中process的理解(转载)

    http://www.itpub.net/thread-1077321-1-1.html(出处) 关于v$process与v$session中process的理解 说明 v$session有个proc ...

  5. VCS视频学习中的一个例子代码:dff.v和dff_tb.v

    前言 VCS课程中的一个例子! dff.v //r/dff_exp.v module dff_exp(//Inputsinput wire clk_i,input wire rst_l_i,input ...

  6. 在Mac中设置Ctrl+C/V进行复制/粘贴

    在Mac中设置Ctrl+C/V进行复制/粘贴 从Windows世界走入Mac世界,最让不习惯的是在Mac中"复制/粘贴"的快捷键是Command+C/V.而且Command键与C/ ...

  7. Vue中组件数据的传递

    Vue中组件的作用域是隔离的,父组件中的数值子组件看不到!也就是说,用angular作比喻,组件的scope天生是scope:()的! 如果父组件需要往子组件中传数据,此时应该使用标签属性: < ...

  8. vue和react相同点_我在React和Vue中创建了相同的应用程序。 这是区别。

    vue和react相同点 by Sunil Sandhu 由Sunil Sandhu 我在React和Vue中创建了相同的应用程序. 这是区别. (I created the same app in ...

  9. Vue 中 CSS 动画原理

    下面这段代码,是点击按钮实现hello world显示与隐藏 <div id="root"><div v-if="show">hello ...

  10. Vue 中 computed ,watch,methods 的异同

    methods,watch和computed都是以函数为基础的. computed 和 watch 都可以观察页面的相应式数据的变化.当处理页面的数据变化时,我们有时候很容易滥用watch, 而通常更 ...

最新文章

  1. python解多项式方程_python – SymPy不能求解四阶多项式方程
  2. VC 内联汇编中的一个注意事项
  3. 昂贵的聘礼 Dijkstra法
  4. 信息图:大数据2016年分析趋势
  5. 亿些模板【数据结构】
  6. C语言和指针的本质是什么?技术大神给出答案
  7. JavaScript与 HTML表单的交互过程,想要学习动态网页但是无从下手的新手看看。...
  8. 超定方程的求解、最小二乘解
  9. python爬数据实例_Python实例教程爬虫爬取NBA数据功能示例
  10. 用计算机控制人造卫星属于,用计算机控制人造卫星属于 为什么人造卫星在高层大气...
  11. 张一鸣:我的大学四年收获及工作感悟
  12. R数据分析:cox模型如何做预测,高分文章复现
  13. java 实心圆_java JFrame窗口中画一个实心圆并设置背景颜色,但背景不显示,级求解!!...
  14. AngularJS的学习--$on、$emit和$broadcast的使用 - 疯狂的原始人
  15. VUE 当前页获取来源路由地址
  16. python脚本——ping检测在线主机
  17. cdn部署php,Typecho博客全站部署腾讯云CDN教程
  18. 计算机网络-自顶向下方法 第三章课后习题答案(第七版)
  19. 2021-9-28 数据结构学习 第四章 - 栈 和 队列【1024Re】
  20. Cicero:一个单细胞染色质可及性实验可视化R包

热门文章

  1. 我为什么all in了mfers
  2. fastboot刷boot命令
  3. 清华大学中国创业者训练营课程录像
  4. 文章生成器(单文件java版)
  5. 论文阅读《Integrity Monitoring Techniques for Vision Navigation Systems》——3背景
  6. linux服务器 更新显卡驱动
  7. Android学习笔记19:ImageView实现图片适屏与裁剪
  8. LOL如何录制视频打游戏时偶尔会出现滴滴的响声,同时鼠标键盘失效一小会的问题。
  9. bootstrap validate表单验证
  10. 高纯度贵金属行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)