Loading...

文章背景图

Vue3学习记录 - 响应式原理分析

2024-04-18
1
-
- 分钟
|

Vue3的响应式底层实现原理是什么

vue3的底层是通过 ES6 的新语法醣 ProxyES5Object.defineproperty 来实现响应式设计的

尝试自己手动写一份数据响应式-基于 Proxy

  • 定义需要实现响应式的数据信息

let dataInfo = {

 effectName: '测试Proxy响应式',

 changeTimes: 1,

 updated: false

}
  • 利用 ProxydataInfo 实现响应式绑定

let proxyData = new Proxy(dataInfo,{

  // 读取数据的某个key的值

  get(data,key){

    console.log读取data的${key}的值)

    return data[key]

  },

  // 修改数据的某个key的值为一个新的值

  set(data,key,val){

    console.log更改dataInfo的${key}的值,新的值为${val})

    dataInfo[key] = val;

    return dataInfo[key]

  },

  // 删除数据的某个key

  deleteProperty(data,key){

    console.log删除dataInfo的${key})

    return delete dataInfo[key]

  }

})

  • 浏览器查看效果-执行数据定义

  • 获取 proxyDataeffectName 的值;更改 proxyDataeffectName 的值;删除 proxyDataeffectName

执行项目搭建

  • 创建项目包

npm create vite vue3Test --template vue-ts
  • 安装依赖

npm install
  • 执行项目启动

npm run dev
  • 查看项目运行情况

评论交流

文章目录