1 、本质上
- v-show 是把标签里的 display 设置为 none ,所以页面上是可见的
- v-if 是动态的操作 DOM 元素,页面上不可见的
2 、性能上
- 要是需要频繁的操作的话,肯定是v-show ,因为他只是操作css的值,不会频繁触发重排。但是v-if是不断的向DOM 树添加或删除元素,在比较少改变的时候比较合适的
- v-show无论任何条件,初始都会渲染, v-if是惰性的,如果初始条件为false ,初始不会渲染DOM ,为true才会渲染。因此v-if有更高的切换开销,而 v-show 有更高的初始渲染开销