vue2面试题

77 阅读1分钟

1.为什么vue的data必须是函数

因为vue的组件是会复用的,如果你的data是对象的话,你在其中一个组件修改了data的值,另外一个组件获取到的data是修改后的值,并不是初始值。这样就不能保证组件的data数据的唯一性。

而如果你的data是函数的话,data函数执行后返回的是初始值,并不会受到影响。

2.computed和watch的区别

computed

  • computed是同步计算的,不支持异步
  • computed相当于计算的是一个派生数据,必须返回计算结果
  • computed有缓存,只有当依赖的数据变化时才会重新计算,否则会从缓存中读取之前的计算结果

watch

  • watch是支持异步操作的
  • watch无需返回值,他侧重的是变化后执行的操作
  • watch有两个配置选项分别是immediate和deep立即开始无需监视的内容发生变化和深度监视,数组这种复杂类型内部属性值的变化是监视不到的,要使用deep配置项才能监视到,他们默认是关闭的,用的时候需要打开
  • watch没有缓存,每次变化都执行回调函数。