vue-if和vue-show的区别,vuev-if和v-show的区别
这篇文章介绍了vue。j中虚拟展示和控制显示指令的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
目录
一、五秀指令二、v-if指令三、五秀和控制显示的区别四、v-else指令五、v-else-if
一、v-show指令
虚拟展示指令可以用来动态的控制数字正射影像图元素的显示或隐藏v秀。后面跟的是判断条件,语法如下:
v-show=判断变量
例如:
v-show=true ,表示显示数字正射影像图元素。
v-show=false ,表示隐藏数字正射影像图元素。
看下面的示例:
!声明文档类型
html lang=en
头
meta charset=UTF-8
meta name= viewport content= width=device-width,initial-scale=1.0
meta http-equiv= X-UA-Compatible content= ie=edge
标题五-显示指令/标题
!-引入vue.js -
脚本src= node _ modules/vue/dist/vue。js /脚本
脚本
window.onload=function(){
//构建某视频剪辑软件实例
新Vue({
艾尔:"#我的",
数据:{
flag:true,//布尔型
imgList:[img/banner1.jpg , img/banner2.jpg , img/banner3.jpg]
},
//方法
方法:{
}
})
}
/脚本
/头
身体
div id=我的
保险商实验所
李v-for=列表中的列表
img:src= list v-show= flag style= height:100px;宽度:300像素;
/李
/ul
/div
/body
/html
运行效果:
将旗变量改为假的,代码如下:
!声明文档类型
html lang=en
头
meta charset=UTF-8
meta name= viewport content= width=device-width,initial-scale=1.0
meta http-equiv= X-UA-Compatible content= ie=edge
标题五-显示指令/标题
!-引入vue.js -
脚本src= node _ modules/vue/dist/vue。js /脚本
脚本
window.onload=function(){
//构建某视频剪辑软件实例
新Vue({
艾尔:"#我的",
数据:{
/* flag:true,//布尔型*/
flag:false,//布尔型
imgList:[img/banner1.jpg , img/banner2.jpg , img/banner3.jpg]
},
//方法
方法:{
}
})
}
/脚本
/头
身体
div id=我的
保险商实验所
李v-for=列表中的列表
img:src= list v-show= flag style= height:100px;宽度:300像素;
/李
/ul
/div
/body
/html
运行效果:
这里只会显示三个里元素,但不会显示图片元素。
二、v-if指令
控制显示指令的用法和虚拟展示指令的用法相同,都是用来控制数字正射影像图元素的显示或隐藏。代码示例如下:
!声明文档类型
html lang=en
头
meta charset=UTF-8
meta name= viewport content= width=device-width,initial-scale=1.0
meta http-equiv= X-UA-Compatible content= ie=edge
titlev-if指令/标题
!-引入vue.js -
脚本src= node _ modules/vue/dist/vue。js /脚本
脚本
window.onload=function(){
//构建某视频剪辑软件实例
新Vue({
艾尔:"#我的",
数据:{
flag:true,//布尔型
imgList:[img/banner1.jpg , img/banner2.jpg , img/banner3.jpg]
},
//方法
方法:{
}
})
}
/脚本
/头
身体
div id=我的
保险商实验所
李v-for=列表中的列表
img:src= list v-if= flag style= height:100px;宽度:300像素;
/李
/ul
/div
/body
/html
运行效果:
三、v-show和v-if的区别
虚拟展示和控制显示都可以用来控制数字正射影像图元素的显示或隐藏,那么这两个指令有什么区别呢?
虚拟展示和控制显示指令的区别主要在于设置数字正射影像图元素隐藏的时候:
v-show指令设置hide是给元素添加css样式- display:none,但是DOM元素还是存在的。v-if指令设置hide是删除整个DOM元素,DOM元素不存在。请参见以下示例:
垂直显示隐藏的设置:
!声明文档类型
html lang=en
头
meta charset=UTF-8
meta name= viewport content= width=device-width,initial-scale=1.0
meta http-equiv= X-UA-Compatible content= ie=edge
标题v-显示说明/标题
!-介绍vue.js -
脚本src= node _ modules/vue/dist/vue . js /script
脚本
window.onload=function(){
//构建一个vue实例
新Vue({
艾尔:“#我的”,
数据:{
/* flag:true,//Boolean */
标志:false,//Boolean
imgList:[img/banner1.jpg , img/banner2.jpg , img/banner3.jpg]
},
//方法
方法:{
}
})
}
/脚本
/头
身体
div id=我的
保险商实验所
li v-for=(list,index) in imgList
!-img:src= list v-show= flag style= height:100px;宽度:300像素;-
!-当索引等于1时显示,当索引不等于1时隐藏-
img:src= list v-show= index==1 style= height:100px;宽度:300像素;
/李
/ul
/div
/body
/html
检查元素:
从生成的HTML结构中可以看出,隐藏了索引不等于的元素,但是添加了CSS style: display:node,但是元素仍然存在。看下面的v-if。
!声明文档类型
html lang=en
头
meta charset=UTF-8
meta name= viewport content= width=device-width,initial-scale=1.0
meta http-equiv= X-UA-Compatible content= ie=edge
Titlev-if指令/标题
!-介绍vue.js -
脚本src= node _ modules/vue/dist/vue . js /script
脚本
window.onload=function(){
//构建一个vue实例
新Vue({
艾尔:“#我的”,
数据:{
标志:真,//布尔
imgList:[img/banner1.jpg , img/banner2.jpg , img/banner3.jpg]
},
//方法
方法:{
}
})
}
/脚本
/头
身体
div id=我的
保险商实验所
li v-for=(list,index) in imgList
!-img:src= list v-if= flag style= height:100px;宽度:300像素;-
!-当索引等于1时显示,当索引不等于1时隐藏-
img:src= list v-if= index==1 style= height:100px;宽度:300像素;
/李
/ul
/div
/body
/html
检查元素:
从生成的HTML结构可以看出,索引不等于1的元素是隐藏的。这里直接删除img元素,不占位置。
更详细的区别:(借鉴别人的博客内容,博客地址://www . jb51 . net/article/240646 . htm)
1.意味着:v-if动态添加或删除DOM元素到DOM树中;V-show通过设置DOM元素的显示样式属性来控制显示和隐藏;2.编译过程:v-if切换有一个部分编译/卸载过程,在这个过程中,内部事件监控和子组件被适当地破坏和重建;V-show只是一个简单的基于css的开关;3.编译条件:v-if为惰性,如果初始条件为false,则什么都不做;只有当条件第一次变为真时,本地编译才开始(编译被缓存?编译缓存后,切换时再部分卸载);V-show在任何条件下编译(不管第一个条件是否成立),然后缓存,DOM元素保留;4.性能消耗:v-if开关消耗较高;V-show的初始渲染消耗较高;5.使用场景:v-if适合运行条件,不太可能变化;v秀适合频繁切换。
四、v-else指令
v-else指令不需要表达式,但是有一个限制:前面的兄弟元素必须有v-if或v-else-if指令。
用法:为v-if或v-else-if添加“else block”。
请看下面的代码:
!声明文档类型
html lang=en
头
meta charset=UTF-8
meta name= viewport content= width=device-width,initial-scale=1.0
meta http-equiv= X-UA-Compatible content= ie=edge
titleVue指令:v-if v-else/title
!-引入vue.js -
脚本src= ./js/vue.js/script
/头
身体
div id=应用程序
h1num值:{{num}}/h1
div v-if=num 5 id=div1
现在你看到我了
/div
!-伏-否则指令不需要表达式,配合前面的控制显示使用-
div-否则
现在你不知道了
/div
/div
脚本
//实例化某视频剪辑软件对象
var vm=new Vue({
//挂载元素
埃尔: #app ,
数据:{
num:Math.random()
},
方法:{
}
});
/脚本
/body
/html
浏览器运行结果:
可以看到:数量的值不大于5,所以控制显示表达式的值为假的,所以会显示五-否则指令所在标签。
五、v-else-if
如果,否则使用限制:前一兄弟元素必须有控制显示或者如果。
用法:v-else-if表示控制显示的" else-if "块,可以链式调用。
看下面代码:
!声明文档类型
html lang=en
头
meta charset=UTF-8
meta name= viewport content= width=device-width,initial-scale=1.0
meta http-equiv= X-UA-Compatible content= ie=edge
titleVue指令:v-if v-else/title
!-引入vue.js -
脚本src= ./js/vue.js/script
/头
身体
div id=应用程序
!- h1num值:{{num}}/h1
div v-if=num 5 id=div1
现在你看到我了
/div -
!-伏-否则指令不需要表达式,配合前面的控制显示使用-
!-div-else
现在你不知道了
/div -
div v-if=type===A
A
/div
div v-else-if=type===B
B
/div
div v-else-if=type===C
C
/div
div-否则
不是甲乙丙丁
/div
/div
脚本
//实例化某视频剪辑软件对象
var vm=new Vue({
//挂载元素
埃尔: #app ,
数据:{
num:Math.random(),
类型:" B "
},
方法:{
}
});
/脚本
/body
/html
浏览器运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。