给大家分享一些关于Vue可能会遇到的面试题
v-if vs v-show
- v-if 是真正的条件渲染,通过节点的销毁、重建来实现
- v-if 是惰性的,即初始条件为 false 时,什么也不做,直到条件第一次为 true 才开始渲染
- v-show 总会被渲染,只是简单的基于 CSS 来实现样式切换
- 一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。
v-if 与 v-for 一起使用
- 当 v-if 与 v-for 一起使用时,v-for 具有比 v-if 更高的优先级。(注意这里是 2.x 的版本,3.x 反之)
- 不推荐同时使用 v-if 和 v-for。
计算属性(computed) VS 方法
- 计算属性的值会被缓存,计算属性是基于它们的响应式依赖进行缓存的,当依赖项改变时,才重新计算计算属性的值并继续缓存。
- 方法不会缓存,每调用一次方法,都会重新执行一次方法主体代码块
计算属性 VS 侦听器
- 计算属性的值会被缓存。
- 侦听器不能被缓存。
- 通常计算属性是根据一个或多个已有数据,返回一个新的值,侦听器是监听一个数据的变化,可能由一个数据的变化导致其它一个或多个数据的变化,或导致其它一些副作用