computed 和 watch 之间的区别
1. computed 所监控的数据是不在 data 中进行声明的,它是基于data 或 props 中的数据通过计算得到的一个新的值,而watch监控的数据来源是data、props 和 computed 中的。
2. computed 不支持异步,在出现异步操作是,是无法监听到数据变化的;watch支持异步。
3. computed 是存在缓存的,在重复调用时,数据不变就从缓存中读取结果,只有所依赖的数据发生变化后,才会重新计算;watch 不支持缓存,监听的数据改变会直接触发相应的操作,没有改变就不会触发;
4. 在 computed 属性对象中定义计算属性的方法,和取 data 对象里的数据属性一样以属性访问的形式调用,即在页面中使用 {{ 方法名 }} 来显示计算的结果,computed 有返回值,方法的返回值作为属性值;watch 监听函数有两个参数,第一个参数是最新的值,第二个参数是输入之前的值,新值在前,如果只写一个参数,那则参数为新值。
computed 和 methods 之间的区别
1. computed是响应式的,methods并非响应式。
2. 调用方式不同,computed定义的成员像属性一样访问,methods 定义的成员必须以函数形式调用。比如 computed 访问时是 {{ test }},而 methods 访问需要 {{ test() }}。
3. computed 是带缓存的,而 methods 是没有缓存的。