angular的运行就是在JavaScript context里自己实现一套环境。angular环境。在angular context里面也有一个队列。watch列表。列表里面就是那些被监听的变量、(包含数据绑定的变量,和view绑定的)。若用户改变了一个绑定数据的view没出发angular函数$apply把事件放入队列。轮循到这个时候就触发。把改变的值更新到绑定的那个变量。在调用digest函数轮循watch列表。看列表中的值是否有变动。
angular中的轮循至少两遍。第一遍轮循可能在改写DOM的时候可能会触发其他watch列表里面的变量变化,再轮循知道变量不再变化。
Vue数据绑定--数据劫持
vue.js采用的数据劫持结合发布者-订阅者的模式
通过Object.defineProperty()来劫持各个属性的getter、setter。在数据变动时发布消息给订阅者,触发相应的监听回调函数。
对比angular、和Vue机制
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 前端这几年的技术发展很快,细分下来,主要可以分成四个方面: 开发语言技术,主要是ES6&7,coffeescrip...
- 对于批判性思维的定义有很多的分歧,教育学家、哲学家、心理学家都试图给批判性思维一个明确的定义,但是这些都是徒...