校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > js语言和框架 > 响应式原理-订阅、绑定和劫持
题目

Vue 响应式怎么实现 ?

解答

当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部装换为 getter / setter 。Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是为什么 Vue 不支持 IE8 以及更低版本浏览器的原因。每个组件实例都对应一个 watcher 实例,它会在组件渲染的过程中把“接触”过的数据 property 记录为依赖。之后当依赖项的 setter 触发时,会通知 watcher,从而使它关联的组件重新渲染。
更具体的理解 :
利用 Object.defineProperty 进行 数据劫持 同时结合观察者模式(发布 / 订阅模式)来实现数据双向绑定,这也是 vue 响应式原理的核心。

C 0条回复 评论

帖子还没人回复快来抢沙发