vue 双向数据绑定

vue.js 采用数据劫持 和发布-订阅模式来实现的。

数据劫持:

        vue.js通过Object.defineProperty()方法来劫持数据对象的属性,将这些属性转化为getter/setter,当数据变化时,getter/setter会触发相应的更新操作。

发布-订阅模式:

        vue.js使用一个观察者(Watcher)来订阅数据的变化,当数据变化时,Watcher会通知所有的订阅者(订阅该数据的组件),相关组件重新渲染。

实现双向数据绑定:

        vue.js中模板(template)用指令(如v-model)进行数据绑定,指令会创建一个Watcher,数据有变化,Watcher会触发视图更新

总结:

Vue.js 的双向数据绑定是通过数据劫持和发布-订阅模式来实现的。数据劫持 拦截和监控数据的变化 ,发布-订阅 负责通知 和 更新视图

在 Vue 3 中,使用 Proxy 对数据进行劫持,从而实现对数据的监听和响应。Proxy 可以直接监听对象属性的变化,并且可以监听数组的变化,这使得 Vue 3 的响应式系统更加高效和灵活 。

使用 Proxy 进行响应式数据劫持

        在 Vue 3 中,使用 Proxy 对数据进行劫持,从而实现对数据的监听和响应。Proxy 可以直接监听对象属性的变化,并且可以监听数组的变化,这使得 Vue 3 的响应式系统更加高效和灵活。

 依赖收集和触发更新

        Vue 3 中使用 effect 函数进行依赖收集,并在数据变化时触发更新。

 在 Vue 3 中实现双向数据绑定

        在 Vue 3 中,可以使用 refreactive 创建响应式数据,并结合模板语法和指令实现双向数据绑定。

总结

        Vue 3 通过 ProxyReflect 实现了更为高效和灵活的响应式数据系统。使用 refreactive 创建响应式数据,并结合 effect 函数进行依赖收集和触发更新,从而实现了双向数据绑定。相比于 Vue 2,Vue 3 的响应式系统在性能和功能上都有了显著提升。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值