一、官方解释:

  1. v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

  2. v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

  3. 相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。

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

二、个人理解:

  1. 相同点:v-show和v-if都能控制元素的显示和隐藏。
  2. 不同点:
  • 实现本质方法不同
    v-show本质就是通过设置css中的display设置为none,控制隐藏
    v-if是动态的向DOM树内添加或者删除DOM元素

  • 编译的区别
    v-show其实就是在控制css
    v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件

  • 编译的条件
    v-show都会编译,初始值为false,只是将display设为none,但它也编译了
    v-if初始值为false,就不会编译了

  • 性能
    v-show只编译一次,后面其实就是控制css,而v-if不停的销毁和创建,故v-show性能更好一点。

    注意点:因为v-show实际是操作display:" "或者none,当css本身有display:none时,v-show无法让显示


总结:如果要频繁切换某节点时,使用v-show(无论true或者false初始都会进行渲染,此后通过css来控制显示隐藏,因此切换开销比较小,初始开销较大),如果不需要频繁切换某节点时,使用v-if(因为懒加载,初始为false时,不会渲染,但是因为它是通过添加和删除dom元素来控制显示和隐藏的,因此初始渲染开销较小,切换开销比较大)

vue中v-show和v-if的异同相关推荐

  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. mysql备份策略的制定
  2. 虚拟机上SourceInsight访问Linux系统的代码
  3. ansible 安装和使用
  4. .NET : 动态生成工作流定义文件并且进行编译
  5. hihoCoder1353 满减优惠
  6. 搭建基于.NetFrameWork的私有nuget服务端及打包项目发布上传
  7. IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) C. Bear and Up-Down 暴力
  8. 清华大学 lt;现代软件工程gt; 项目小组名单
  9. dns迭代查询配置_dns解析?瞅瞅这篇文章
  10. linux内存报警,linux 邮件报警,监控内存cup
  11. 什么叫直播秒开?如何实现秒开?
  12. 随想录(cmake编译)
  13. 一个肉夹馍引起的思考
  14. MATLAB计算干旱指标:SPI、SRI、SWAP、DWAAI、EDI等
  15. linux中如何查看本机ip,Linux中如何查看本机IP地址呢?
  16. selenium安装及使用
  17. 新浪股东批准私有化合并协议;中集车辆创业板成功过会;中国红牛2020年销售额超228亿元​ | 美通企业周刊...
  18. 鸿蒙1号6年级数学答案,一些常用的数学公式
  19. 基于R语言的方差分析及多重比较
  20. matlab读Excel表格数据画图,matlab读Excel表格数据画图-matlab如何从excel表格中读取数据?...

热门文章

  1. MATLAB滑动平均滤波
  2. python面向对象语言_python是面向对象的语言吗
  3. 华工计算机学院王泉院长,微软亚洲研究院对华南理工大学计算机科学与工程学院进行访问交流...
  4. OGEM centrifugal pump and vacuum degasser used in solids control process
  5. 笔记本风扇噪音大的处理办法
  6. 微信怎么找回删除的聊天记录
  7. 微信公众号网页上点击放大图片浏览,解决方案
  8. Nitro League 和 YGG 达成合作
  9. rm -fr排除目录
  10. 【幻灯片分享】揭开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp