vue面试题集锦
面试题1:计算属性和方法有什么区别?
计算属性本质上是包含getter和setter的方法
当获取计算属性时,实际上是在调用计算属性的getter方法。vue会收集计算属性的依赖,并缓存计算属性的返回结果。只有当依赖变化后才会重新进行计算。
方法没有缓存,每次调用方法都会导致重新执行。
计算属性的getter和setter参数固定,getter没有参数,setter只有一个参数。而方法的参数不限。
由于以上的这些区别,因此计算属性通常是根据已有数据得到其他数据,并在得到数据的过程中不建议使用异步、当前时间、随机数等副作用操作。
实际上,他们最重要的区别是含义上的区别。计算属性含义上也是一个数据,可以读取也可以赋值;方法含义上是一个操作,用于处理一些事情。
面试题2:v-if和v-show有什么区别?
v - if 能够控制是否生成 vnode ,也就间接控制了是否生成对应的 dom 。当 v - if 为 true 时,会生成对应的 vnode ,并生成对应的 dom 元素;当其为 false 时,不会生成对应的 vnode ,自然不会生成任何的 dom 元素。
v - show 始终会生成 vnode ,也就间接导致了始终生成 dom 。它只是控制 dom 的 display 属性,当 v - show 为 true 时,不做任何处理;当其为 false 时,生成的 dom 的 display 属性为 none 。
使用 v - if 可以有效的减少树的节点和渲染量,但也会导致树的不稳定;而使用 v - show 可以保持树的稳定,但不能减少树的节点和渲染量。因此,在实际开发中,显示状态变化频繁的情况下应该使用 v - show ,以保持树的稳定;显示状态变化较少时应该使用 v - if ,以减少树的节点和渲染量。