vue.js中的v-if与v-show

news/2024/7/10 1:25:37 标签: vue

原文:https://www.cnblogs.com/wmhuang/p/5420344.html

1.共同点
都是动态显示DOM元素

2.区别
(1)手段:v-if是动态的向DOM树内添加或者删除DOM元素;v-show是通过设置DOM元素的display样式属性控制显隐;

(2)编译过程:v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件;v-show只是简单的基于css切换;

(3)编译条件:v-if是惰性的,如果初始条件为假,则什么也不做;只有在条件第一次变为真时才开始局部编译(编译被缓存?编译被缓存后,然后再切换的时候进行局部卸载); v-show是在任何条件下(首次条件是否为真)都被编译,然后被缓存,而且DOM元素保留;

(4)性能消耗:v-if有更高的切换消耗;v-show有更高的初始渲染消耗;

(5)使用场景:v-if适合运营条件不大可能改变;v-show适合频繁切换。

Tips:(1)如果v-show作用的元素,css文件中display:none,通过v-show进行设置不能显示该元素;
原因:v-show控制显隐,是通过js代码去修改元素的element style,如果value为false,设置display: none;如果value为true,设置display: ‘’;于是value为true时,只能将element style中的display效果清除,并不能覆盖css中的display效果;
如下图所示,value=true时,v-show改变的是element.style,由于无效,显示效果由css文件中的display决定。
在这里插入图片描述
解决办法:使用v-show的话,在vue解析之前隐藏DOM的话,尽量在style属性里面设置display的值,不要在css文件中。


    http://www.niftyadmin.cn/n/1691400.html

    相关文章

    linux下lpython查版本信息,ln进行python软连接、find、which进行环境变量文件查找、ps进行进程查看、/usr/local/为软件安装主目录

    1、查看某个安装包的版本信息指令: python -m django --version 如果是查看其它安装包的信息则改为其它包名即可。 2、ln进行python版本软连接,安装python3.5推荐使用Anaconda,推荐安装到/usr/local/这里被安装到root下了 anaconda安装方…

    pycharm进行代码编写的常用快捷键、scheme主题更换

    ## 一、常用快捷键: CtrlHome>头部CtrlEnd>尾部快速生成try…catch… 对代码进行快速添加外部代码例如添加try....except.... CtrlAltt,选中要被包裹的代码块,按下快捷键,选择try/except即可 5. ctrlshiftN进行find查找工程…

    理解maven命令package、install、deploy的联系与区别

    原文:https://blog.csdn.net/zhaojianting/article/details/80324533 我们在用maven构建java项目时,最常用的打包命令有mvn package、mvn install、deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)…

    C++跟C#获取电脑上连接的多个摄像头名称与编号

    1、其中C获取多个摄像头的名称&#xff0c;然后根据名称对应其编号&#xff0c;从而可以使用opencv进行按编号打开特定的摄像头&#xff1a; #include<iostream> #include "strmif.h" #include <initguid.h> #include<vector> #include<string…

    3D人脸重构里的渲染质心(barycentric coordinates)坐标计算原理。

    一、什么是质心坐标&#xff1f; 在几何结构中&#xff0c;质心坐标是指图形中的点相对各顶点的位置。 以图&#xff11;的线段 AB 为例&#xff0c;点 P 位于线段 AB 之间&#xff0c; 图&#xff11; 线段AB和点P 此时计算点 P 的公式为 。 同理&#xff0c;在三角形 ABC …

    response.setHeader的各种用法

    原文&#xff1a;https://blog.csdn.net/junmoxi/article/details/76976692 1、一秒刷新页面一次 response.setHeader(“refresh”,“1”); 2、二秒跳到其他页面 response.setHeader(“refresh”,“2;URLotherPagename”); 3、没有缓存&#xff1a; response.setHeader(“Pr…

    HttpServletResponse的getWriter()和getOutputStream()详解

    原文&#xff1a;https://blog.csdn.net/qq_42750329/article/details/89552805 关于getWriter()和getOutputStream的理解 最近在做一个文件上传下载时遇到了一个问题&#xff0c;HttpServletResponse的实例对象在获取输出流时有两种方式&#xff0c;即getWriter()和getOutput…

    linux使用crontab定时执行脚本、smtplib自动登陆邮箱、poplib进行邮件读取解析、BeautifulSoup进行网页爬取、logging进行错误日志记录

    1、linux使用crontab定时执行脚本&#xff1a; a、crontab启动、停止、启动、重启crontab服务&#xff1a; 一、正常情况&#xff08;linux版本有service命令的&#xff09;&#xff1a; 重启命令&#xff1a;service crond restart 启动命令&#xff1a;service crond star…