19.watch与computed的区别和计算属性与方法相比
watch 与 computed 的区别
DETAILS
侦听器 watch:侦听器是在监听的属性
发生改变
的时候才会触发
,初始
时是不会触发
的 计算属性: 计算属性虽然是对象方法,但是以属性的方式进行使用,并且默认是只读的
计算属性适合:多个值去影响一个值的应用;而侦听器适合:一个值去影响多个值的应用, 同时侦听器
支持异步
的程序,而计算属性不支持异步
的程序。 如计算一个加法,由两个变量得出加法的和,这是就需要用到计算属性,而侦听器一般是在异步加载请求后,对后端返回的api
进行处理。
计算属性与方法相比
DETAILS
- 调用方法时计算属性
computed
若写在 methods
里需要再方法后加上()
,如果是写在 computed 里,直接写上方法名即可调用
//methods
handleClick();
//computed
handleClick;
- 具备缓存的能力,而方法不具备缓存,在依赖的数据未改变时,即使调用了两次相同方法,计算属性
只执行一次
,而在methods
里会执行两次
。且计算属性只读取不能修改
,要想修改,得修改最终依赖的东西。