手写vue响应式原理

响应式原理图:
1.通过Object.defineProperty来实现监听数据的改变和读取(属性中的getter和setter方法) 实现数据劫持;

2.观察者模式(发布者-订阅者)
观察者(订阅者) – Watcher:
update():当事件发生时,具体要做的事情

目标(发布者) – Dep:
①deps 数组:存储所有的观察者
②addDep():添加观察者
③notify():当事件发生,调用所有观察者(全部的依赖)的 update() 方法

3.当数据发生改变通过发布者订阅者模式来进行通知 进行界面刷新

在这里插入图片描述
直接看代码:

<script>
    //依赖
    let Dep = (function() {
   
   
      function Dep() {
   
   
        this.deps = [];  // 用来存储全部的依赖watcher
      };
      // 收集依赖
      Dep.prototype.addDep = function (watcher) {
   
   
        this.deps.push(watcher);
        console.log("收
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值