vue中computed与methods的区别
methods: (函数调用)
每一次的调用都会对方法进行触发
computed:(属性调用)(当不依赖data)
初始化时被调用,第一次使用时,会把结果进行缓存,后续再使用计算属性,都会在第一次的结果进行查找。
computed:(当依赖data)
当data中的数据与上一次缓存的数据对比发生变化时调用计算属性中的方法,和普通属性一样是在模板中绑定计算属性的,当data中对应数据发生改变时,计算属性的值也会发生改变。
相同: 两者达到的效果是同样的。
不同: 计算属性是基于它们的依赖进行缓存的,只有相关依赖会发生改变时才会重新取值。只要相关依赖未被改变,只会返回之前的结果,不再执行函数。
自我总结:
computed是基于它们的依赖(data)进行缓存的,只有在相关依赖发生变化时它们才会重新求值。只要它的依赖没有发生变化,那么每次访问的时候,计算属性都会立即返回之前的计算结果。渲染速度更快。
methods方法,每当触发重新渲染时,调用方法将总是再次执行函数。