💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
自己在深入研究vue的源码及其各种原理的时候,有太多的问题和疑惑。在网上看了一篇关于介绍Watcher的文章。因此,我将Watcher分类放在开始部分进行讲解。 Watcher分类 --------- #### 内部-watcher vue组件上的每一条数据绑定指令(例如`{{myData}}`)和computed属性,通过compile最后都会生成一个对应的 watcher 对象。 #### user--watcher 在watch属性中,由用户自己定义的,都属于这种类型,即只要监听的属性改变了,都会触发定义好的回调函数 #### render-watcher 每一个组件都会有一个 render-watcher, `function () {vm._update(vm._render(), hydrating);}`, 当 data / computed中的属性改变的时候,会调用该 render-watcher 来更新组件的视图 ------------------------------------------------ #### 三种 watcher 的执行顺序 watcher 也有固定的执行顺序,分别是: > 内部-watcher -> user-watcher -> render-watcher 优先执行内部watcher是为了保证指令和DOM节点的优先更新,这样当用户自定义的Wathcer的回调函数触发时DOM已经更新完毕。