区别:
vue的computed选项主要用于同步对数据的处理,而watch选项主要用于事件的派发,可以异步。
使用场景:
computed拥有缓存属性,只有当依赖的数据发生变化时,关联的数据才会变化,适用于计算或者格式化的数据的场景。
(1)金融领域的分期付款,P2P年化收益,带有计算性质的,都可以优先考虑computed。
不需要关注点击事件或者其他数据,只要将计算规则写在属性里,就能获取对应的数据。
(2)电商领域的购物车统计,计算总金额和数量,一个数据依赖于一个或多个数据。
watch监听数据,有关联但是没有依赖,只要某个数据发生变化,就可以处理一些数据或者派发事件并同步/异步执行。
主要适用于与事件和交互有关的场景,数据变化为条件,适用于一个数据同时触发多个事物。
如设置一个金额输入框,监听金额数值大小,达到条件时会弹窗提示,并设定数值为最大金额。