最近前端面试基本100%都会问到v-if 和v-show的问题
及来记录下个人的理解和看法
- v-if 是根据条件的判断,会对标签进行适当的创建和销毁,就是每一次都会判断并操作
- v-show 同样是根据条件的判断,但仅仅初始化时加载一次
如果两者为true,打开控制台会发现有以下这个标签
<a>我是v-if</a>
<a>我是v-show</a>
如果两者为false,打开控制台会发现有以下这个标签
<!-- 没有任何东西 -->
<a style="display:none">我是v-show</a>
再来谈谈两者的适用场景
因为上面说到v-if 每次都会切换渲染消耗,而v-show是有着更高的初始渲染消耗
因此,true,fase如果要频繁判断,类似于,弹窗要多次打开关闭,打开关闭
从用户体验的角度来说,用v-show跟好,减少渲染消耗,反之亦然
true,fase判断次数很少,用v-if,应为v-show初始渲染消耗高