当前位置: 首页 > article >正文

vue3-07模拟vue3的响应式原理Proxy (代理对象)与Reflect (反射对象)

1.实现原理

  1. 通过Proxy (代理对象): 拦截对象中任意属性的变化,包括: 性值的读写、性的添加、属性的删除。
  2. 通过Reflect (反射对象): 对源对象的属性进行操作。
new Proxy(data,{
// 拦截读取属性值
get (target, prop) (
return Reflect.get(target, prop)
// 拦截设置属性值或添加新属性
set (target, prop, value) 
return Reflect.set(target,prop, value)
//拦截删除属性
deleteProperty (target,prop) {
return Reflect.deleteProperty(target,prop)
proxy.name = 'tom'

2.模拟响应(proxy)

target->person

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue3响应式</title>
    <script>
        // 源对象
        let person = {
            name: "messi",
            age: 15,
        };
        const p = new Proxy(person, {
            // p读取
            get(target, propName) {
                console.log(`已经读取p上的${propName}`, 'target', target, 'propName', propName);
                return Reflect.get(target, propName)
            },
            // p修改与增加
            set(target, propName, value) {
                console.log(`已经修改p上的${propName}属性,更新页面`);
                return Reflect.set(target, propName, value)
            },
            // p删除
            deleteProperty(target, propName) {
                console.log(`已经删除p上的${propName}属性,更新页面`);
                // return delete target[propName];
                return Reflect.defineProperty(target, propName)
            }
        });
    </script>
</head>

<body>

</body>

</html>

对应操作响应式更改


http://www.kler.cn/a/563907.html

相关文章:

  • 《论企业集成平台的理解与应用》审题技巧 - 系统架构设计师
  • 判断一个链表是否为回文结构(C++)
  • 【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
  • 数仓搭建实操(传统数仓orale):DM数据集市层
  • 《论软件维护方法及其应用》审题技巧 - 系统架构设计师
  • 初识Skywalking
  • MuMu模拟器Pro for Mac 安卓手机平板模拟器
  • 在 WPF 项目中集成 Hangfire
  • 防爆手机科普:与普通手机的区别?在危险作业场景扮演什么角色?
  • DeepSeek开源周第二弹:DeepEP如何用RDMA+FP8让MoE模型飞起来?
  • Vue 项目中配置代理的必要性与实现指南
  • ZT15 小红的区间查询
  • FastAPI系列:Ubuntu部署FastAPI项目实战
  • 【MySQL篇】表的操作
  • Vue.js组件开发:从基础到进阶
  • Burp Suite Professional 2024版本安装激活指南
  • 算法系列之递归反转单链表
  • 四款 AI 协作办公工具,AI工具库革新办公效率
  • 2025年软考报名费用是多少?全国费用汇总!
  • Hive从入门到运用