前端面试 vue2和vue3的双向绑定原理分析

本文探讨了前端面试中Vue2和Vue3的双向绑定实现方式。在Vue3中,双向绑定通过Proxy实现,它能对整个对象进行代理,而Vue2则依赖于Object.defineProperty来监听特定属性。通过get和set方法,Vue3的Proxy可以更灵活地处理数据变化。Vue2的Object.defineProperty则在定义属性时提供描述对象,用于监听和控制属性的行为。
摘要由CSDN通过智能技术生成

前端面试 vue2、vue3双向绑定原理

vue3 双向绑定原理

首先介绍Proxy代理

  1. proxy不是对原对象而是对返回的对象进行代理,proxy是对整个对象进行代理的不是对象中某个属性
  2. Proxy有两个参数 第一个是需要代理的对象 第二个是handler需要对数据进行操作的方法如 get set
  3. get有两个参数 第一个是代理的对象 第二个是key也就是对象中的某个属性名
  4. set有三个参数 第一个和第二个和get一样 但三个是我们重新设置新的值
    <input type="text" v-model='name'>
    <span v-bind="name">0</span>

        // vue3的双向数据绑定Demo
        function View() {
   
            let pxy = new Proxy({
   },//代理整个对象{},用这个容器存储值
                {
   
                    get(obj, property) {
   },
                    set(obj, property, value) {
   //obj为容器 property为下面this.getAttribute('v-model')这段代码设置的key value为下面设置的this.value
                        const models1 = document.querySelectorAll(`[v-model = "${
     property}"]`);
                        const models2 = document.querySelectorAll(`[v-bind = "${
     property}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值