摘要: 异步更新原理 上一章实现了依赖收集和自动更新, 但是存在问题: 如果对同一个属性多次更新, 如: vm.name = 1 vm.name = 2, vm.name = 3, 就是触发多次update方法, 会导致效率底下. 考虑将需要更新的watcher不是立即执行, 而是维护到一个队列里面去, 同 阅读全文
posted @ 2022-06-26 23:19 littlelittleship 阅读(68) 评论(0) 推荐(0) 编辑
摘要: vue中的依赖收集 vue中使用的是观察者模式 watcher是观察者, dep是被观察者 上一节已经可以做到手动渲染, 调用vm._update(vm._render())方法 将渲染的逻辑封装到watcher中, 给每一个属性添加上dep属性, 让dep属性去记录当前watcher 在值发生变化 阅读全文
posted @ 2022-06-26 22:15 littlelittleship 阅读(36) 评论(1) 推荐(1) 编辑
摘要: 解析模板,生成render函数,执行render函数,实现视图渲染 1.模板转化成ast语法树 2.ast语法树生成render函数 3.执行render函数生成虚拟dom 4.执行_update方法生成真实dom 5.真实dom替换掉模板 在初始化方法中(_init()), 对元素进行处理, 执行 阅读全文
posted @ 2022-06-26 17:02 littlelittleship 阅读(218) 评论(0) 推荐(0) 编辑