01-watch原理/computed原理

我们监听一个元素,在created中,如果这个值被赋值多次,但是监听只能监听到一次。如何做到监听两次?

 

 

 浏览器输出: 发现只输出一次3


 解决: $nextTick()是一个promise对象,可以用async和await,下图中两种写法一个意思。

 输出:为什么不输出1,因为1和3在一个层,3把1给覆盖了。


   -->   

   --->  

总结:要想能监听一个元素多次被改变的值,需要加上this.$nextTick();


 

computed计算属性原理和响应式原理都是大同小异的,同样的是使用数据劫持以及依赖收集,不同的是计算属性有做缓存优化,只有在依赖属性变化时才会重新求值,其它情况都是直接返回缓存值。服务端不对计算属性缓存。

 

原文地址:https://www.cnblogs.com/haoqiyouyu/p/14545843.html