论Object.defineProperty()其实也就是响应式

首先,我是一名工作四年的前端程序员,头发尚在,不喜欢格子衫

        Vue作为现在市面上主流的前端框架之一,哇, Evan You他这个编程思想我跟你说,用俺老家话说就是咦,我滴乖乖,这小孩,以后不愁娶老婆,行了简单几句话打开今天的正题,vue的响应式。

        其实现在好多前端开发者都在说vue的响应式其实是Object.defineProperty();但是有没有谁真正的了解这个所谓的defineProperty()API到底是干什么的呢,我在mdn上面搜了一下,请看vcr;

  按照我的理解来说,就是属性的修饰符,但是他呢也有一个弊端,就是说只能描述已经被修饰的那些属性,这个也就是说为什么vue的作者会出一个$set()的API供开发者使用,但是在Vue3中作者使用了一个新的方法Proxy()代理 ,请看vcr

        其实从字面意思就可以看出他是“代理”,这就很好的可以解决不再去使用$set()去进行响应式,首先整个响应式所包含的几个点:数据、被使用数据的函数、更新视图的方法、前端所需要做的无非就是这些,我们矮化的理解一下,就是你的视图进行输入了你的数据进行更改,反之,你的数据发生了更改再严格一点的说是你调用了被绑定数据的函数触发了某一个动作所以随之改变,因为你输入的这个存放的变量被vue的不管是defineProperty()还是proxy()他已经被effect进行了劫持,在这里vue作者使用了发布订阅者模式,也就是你的发布者进行了数据推送,订阅者就会被执行进行更新,我简单的写了一个小demo 还有待提升,请看vcr;

简单的进行了叙述了一下自己对响应式的理解,还望大家支持,小弟在这先行谢过了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值