虽然v-if和v-show都能够实现元素的"显示"和'隐藏',但是本质上有很大的差别。
实现的逻辑不同
v-if 的实现是通过元素的创建和销毁来实现的
v-show 的实现则是通过改变元素的样式display来实现的
vue生命周期区别
因为v-if是通过元素的创建和销毁所实现的,所以每一次切换都会重新走一遍生命周期钩子函数。
而v-show因为是通过样式来切换,元素一直存在。所以切换时不会再走生命周期钩子了。
性能区别
v-show比v-if性能更高,因为v-show只能动态的改变样式,不需要增删DOM元素。所以当程序不是很大时候,v-if和v-show区别都不大,如果项目很大,推荐多用v-show,优化性能,减少浏览器的后期操作。