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

作者:不败王者 时间:2023-07-02 17:09:11 

一、官方解释:

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的用法

1、判断谋个元素是否显示或隐藏


<el-button v-show="list.power == 1" @click="toUpload" class="toUpload" type="primary">去上传<i class="el-icon-upload el-icon--right"></i></el-button>

通过接口里的参数list.power是否等于1,如果等于1,则为“true”,否则为“false”,然后v-show指令,等于true的时候显示,false的时候隐藏。

2、三目运算符判断


<a class="warn" v-show="true ? item.ai != null : item.ai == null" :href="'http://172.168.80.149:14081/gateway/upload/upload/downloadFile?url='+item.urlai">AI</a>

其实这个也可以简写成第一种形式


<a class="warn" v-show="!item.ai == null" :href="'http://172.168.80.149:14081/gateway/upload/upload/downloadFile?url='+item.urlai">AI</a>

这样更简单哦

总结

以上所述是小编给大家介绍的vue中v-show和v-if的异同及v-show用法,希望对大家有所帮助

来源:https://www.cnblogs.com/liutianzeng/p/10978890.html

标签:vue,v-show,v-if
0
投稿

猜你喜欢

  • Windows XP操作系统下的MYSQL安装过程

    2008-11-24 12:52:00
  • Python修改Excel数据的实例代码

    2021-05-24 12:40:29
  • python 点云地面点滤波-progressive TIN densification(PTD)算法介绍

    2023-05-26 17:50:55
  • python实现黄金分割法的示例代码

    2022-08-27 19:41:17
  • 跟老齐学Python之赋值,简单也不简单

    2021-03-09 22:44:14
  • Pytorch学习笔记DCGAN极简入门教程

    2022-05-28 17:29:02
  • Python入门Anaconda和Pycharm的安装和配置详解

    2022-12-21 20:25:07
  • 解决Python命令行下退格,删除,方向键乱码(亲测有效)

    2023-01-02 16:30:25
  • Python中模块(Module)和包(Package)的区别详解

    2021-06-17 09:05:22
  • pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法

    2021-05-20 07:01:01
  • ABAP ALV最常规写法及常用功能详解

    2023-07-13 04:02:24
  • python3实现名片管理系统

    2022-01-21 22:11:01
  • SQL为什么不建议执行超过3表以上的多表关联查询

    2024-01-28 07:58:00
  • 触手生春【4.13】CSS中的伪元素选择符

    2008-11-11 13:10:00
  • 《设计网事》前言

    2009-07-15 17:19:00
  • SQLSERVER 语句交错引发的死锁问题案例详解

    2024-01-15 04:31:24
  • pandas删除部分数据后重新生成索引的实现

    2023-11-18 04:44:13
  • python贪婪匹配以及多行匹配的实例讲解

    2021-12-27 20:01:04
  • Python可视化模块altair的使用详解

    2023-10-03 09:00:28
  • python实现创建新列表和新字典,并使元素及键值对全部变成小写

    2023-12-30 00:24:26
  • asp之家 网络编程 m.aspxhome.com