美文网首页
实现Observer数据劫持

实现Observer数据劫持

作者: 仔崽06 | 来源:发表于2020-04-05 16:35 被阅读0次

Observer的实现过程

首先创建一个Observer.js引入

实例化这个observer将需要观察的数据传递进去

这里只对Object进行了劫持,判断数据是否是object,我们利用了原生Object.defineProperty的方法(如对此不了解:请查看文章https://www.jianshu.com/p/89f5f18ca435),因为有时候对象的某个属性的属性值也可以是对象所以才去递归方式去遍历所有属性值。

由此可见对象上所有的属性都绑定了get set的方法,这里需要注意的是 我们给vm.person对象增加新的属性,或者重新赋值都不会被监听。所以我们需要在set赋值新值的时候在需要调用一下observer进行劫持监听.

这样就会对所有新增属性进行监听效果如下:

目前只实现了利用Object.defineProperty拦截并监听对象的所有属性.

下一节:实现观察者Watcher和依赖收集Dep https://www.jianshu.com/p/08b6fdd10b17

相关文章

  • 实现Observer数据劫持

    Observer的实现过程 首先创建一个Observer.js引入 实例化这个observer将需要观察的数据传递...

  • vue双向绑定

    vue采用数据劫持结合发布订阅模式实现双向绑定。Observer:主要通过使用Object.defineprope...

  • 7天深入Vue-响应式原理(三)

    流程图 Observer实现对所有数据劫持 Dep 负责收集每个key 的所有Watcher Watcher 作为...

  • Vue源码03-响应式原理

    这节将专门讲解vue MVVM响应式处理 Vue采用的是 实现数据的响应式 数据劫持 Observer类 Obse...

  • 个人手写的MVVM

    1.MVVM(入口函数) 为vm添加数据代理 调用其他函数(数据劫持,模版编译) 2.observer(数据劫持)...

  • JS实现一个简易版的vue

    上一篇简析vue实现原理,我们知道在 Vue 的 MVVM 设计中,我们主要针对 Observer(数据劫持)、D...

  • 响应式数据原理---订阅发布模式

    数据劫持Observer 所谓数据劫持就是给对象的每一个属性增加get,set方法1.观察对象,给对象增加Obje...

  • MVVM 和 MVC 渲染过程

    MVVM: 数据初始化时,为每个属性添加 Observer 劫持监听,通过Object.difinePropert...

  • 1.4 对数组进行数据劫持

    对数组数据进行数据劫持 Observer,arrayMethods 如果value是数组,不需要用walk的方式对...

  • vue数据绑定原理

    实现原理:vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的.1)数据劫持、vue是通过Obje...

网友评论

      本文标题:实现Observer数据劫持

      本文链接:https://www.haomeiwen.com/subject/mobuphtx.html