watch,methods 和 computed的区别?
watch:
观察和变动vue实例上的数据的变动 一个对象,键是需要观察的表达式,值是对应回调的函数,值也可以是方法名,或者包含选项的对象 主要用来监听某些特定数据的变化,从而进行某些具体的业务逻辑的操作;vue实例将会在实例化时调用$watch(),遍历watch对象的每一个属性。 可以看作是computed和methods的结合体
methods:
methods方法表示一个具体的操作,主要是书写业务逻辑
computed:
computed:属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算,主要当属性来使用。
写法区别:computed最后一定要有个返回值,而且不带参数;methods的返回值和参数都是可有可无的
用法区别:computed形式上是function()函数,但是可以理解为data里面的数据,并且这样使用;methods就是普通的function()函数
computed监听data里的数据变化,会根据data数据变化而自动重新计算;methods无法监听data数据
其实watch是computed的一个拓展,与computed形成互补,作用都是监听data()数据。而区别就是computed监听数据,需要返回切必须返回一个新的值(形式上function,本质是data),所以监听之后随动的数据只有一个(return后的数据);watch则是不管是形式还是本质都是一个function,所以可以监听数据,并随动改变多个值
如图示下: