vue中v-if和v-show的区别和使用场景

        问题:v-if和v-show我们都经常用来控制某一部分内容的显示与隐藏,那么其具体区别是什么呢?

1.v-if

v-if是通过增添和删除DOM来控制元素的显示与隐藏的

  • 当判断值为true时在DOM树中加入该DOM元素
  • 当判断值为false时在DOM树中删除该DOM元素

 2.v-show

v-show是通过改变该元素css样式中的display属性值来控制元素的显示隐藏的

  • 当指令后的判断值为true时该属性的值为block,此时元素显示
  • 当指令后的判断值为false时该属性的值为none,此时元素隐藏

 3.两者的区别和使用场景

(1)区别

        通过v-show来控制显示隐藏的元素是始终渲染在该HTML的DOM树中的,只是通过改变其display属性的值来控制元素的显示隐藏的,而通过v-if来控制元素的显示隐藏是真正意义上的添加或删除该DOM元素

(2)使用场景

        因其原理不同,故而因在不同的场景去使用,v-show是通过css属性来控制的元素显示隐藏,故而初次渲染的消耗要大于v-if,但后续的控制消耗则小很多,v-if每次的改变都要去操作DOM元素,所以当我们需要较为频繁的去控制元素时应该使用v-show,若切换次数很少或者初次判断显示多者中的一个时则应该使用v-if

猜你喜欢

转载自blog.csdn.net/gkx19898993699/article/details/130539708