我们在使用vue的时候,通常会出现computed和watch的区分问题
computed:计算属性
①computed是有缓存的,有缓存则下次调用相同方法时不需要加载,并且只会在本身的data或父传子来的props才会调用里面的方法。
②computed不支持异步,所以不能在当中使用定时器,得在watch中使用。
③使用computed中的方法时,必须return值。
watch:事件监听
①watch是没有缓存的,当数据发生改变后,就会调用当前定义的方法
②watch是支持异步的,每次执行时都会调用回调函数。
③watch可以设置两个属性
1.immediate,设置这个属性为true的时候,就会在页面启动的时候就开始监听,而不是需要事件才会进行监听。
2.deep,设置这个属性的为true的时候,就会对当前的对象进行深度监听,例如:对象中包裹着对象,这样的话,不设置deep是不会访问到内部的信息的,所以需要开启deep.
methods:方法
①与watch和computed不同的是,methods会在启动时就执行完当中的所有函数。
三者中各有千秋,methods会在启动的时候就会执行当中的所有的函数,这也导致了性能相对而言会较低一些,但是methods是没有缓存的,掉电就不容易丢失数据。