Vue3 proxy 数据响应式的简单实现

实现代码

javascript 复制代码
 	      const obj = { a: 1, b: 2, c: { a: 1, b: 2, c: 3 }, d: [1, 2, 3] };

      const handler = {
        get: (target, key) => {
          console.log(`获取数据::::${key} = ${target[key]}`);
          if (typeof target[key] === "object") {
            return observe(target[key]);
          }
          return target[key]; // Reflect.get(target, key)
        },
        set: (target, key, value) => {
          console.log(`设置数据::::${key} === ${value}`);
          target[key] = value; // Reflect.set(target, key, value)
        },
      };

      const observe = (target) => {
        if (typeof target !== "object") {
          return target;
        }

        const obj = new Proxy(target, handler);
        return obj;
      };

      const proxyValue = observe(obj);

      console.log(proxyValue);

效果展示

相关推荐
子兮曰13 小时前
OpenClaw入门:从零开始搭建你的私有化AI助手
前端·架构·github
吴仰晖13 小时前
使用github copliot chat的源码学习之Chromium Compositor
前端
1024小神13 小时前
github发布pages的几种状态记录
前端
不像程序员的程序媛16 小时前
Nginx日志切分
服务器·前端·nginx
Daniel李华16 小时前
echarts使用案例
android·javascript·echarts
北原_春希16 小时前
如何在Vue3项目中引入并使用Echarts图表
前端·javascript·echarts
JY-HPS16 小时前
echarts天气折线图
javascript·vue.js·echarts
尽意啊16 小时前
echarts树图动态添加子节点
前端·javascript·echarts
吃面必吃蒜16 小时前
echarts 极坐标柱状图 如何定义柱子颜色
前端·javascript·echarts
O_oStayPositive16 小时前
Vue3使用ECharts
前端·javascript·echarts