vue中的条件渲染v-if和v-show的区别、以及v-else-if、v-else

v-if后面是一个JS表达式,它的返回值true或者false来决定这个<div>是否挂载在页面之上

v-show也能控制一个模板标签是否在页面上显示

vue中的条件渲染v-if和v-show的区别、以及v-else-if、v-else

在浏览器的控制台上:可以用vm.show来改变show的值:

vue中的条件渲染v-if和v-show的区别、以及v-else-if、v-else

在浏览器的控制台上:可以用vm.show来决定是否显示:

它俩的区别:

v-if对应的JS表达式的值为false,那么它对应的标签压根不会出现在DOM之上

v-show对应的JS表达式的值为false,那么它对应的标签依然在DOM之上,只不过是以display:none的形式放在页面之上

如果用vm-show,为true时,两个都显示,为false时,都不显示,但是v-show的标签依然在DOM上

用v-show指令性能会高一些,因为它不会频繁地把一个DOM元素从页面上删除再添加,而v-if每次隐藏和显示都相当于删除DOM和添加DOM,所以v-if的性能会相对较低

 

v-if、v-else-if、v-else:这三个指令要连在一起写,中间不能被任何标签所分隔

vue中的条件渲染v-if和v-show的区别、以及v-else-if、v-else

 

key值:vue习惯复用已存在的DOM,若有两个</input>,当要求切换不同的<input/>时(vm-show为true或者false时),vue会复用已有的<input />:以下的输入框并未改变

vue中的条件渲染v-if和v-show的区别、以及v-else-if、v-else

vue中的条件渲染v-if和v-show的区别、以及v-else-if、v-else

vue中的条件渲染v-if和v-show的区别、以及v-else-if、v-else

vue中的条件渲染v-if和v-show的区别、以及v-else-if、v-else

这时则需要key来区分,有key时,vue会知道它是页面上唯一的元素,如果两个key不一样,vue就不会复用以前的input标签了:

vue中的条件渲染v-if和v-show的区别、以及v-else-if、v-else