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

前端面试宝典---vue原理

vue的Observer简化版

class Observer {constructor(value) {if (!value || typeof value !== 'object') returnthis.walk(value) // 对对象的所有属性进行遍历并定义响应式}walk (obj) {Object.keys(obj).forEach(key => defineReactive(obj, key, obj[key]))}
}
// 定义核心方法 defineReactive
function defineReactive (target, key, value) {new Observer(value) // 如果值还是对象,则继续对其子属性进行观察Object.defineProperty(target, key, {enumerable: true,configurable: true,get: function reactiveGetter () {return value},set: function reactiveSetter (newVal) {if (newVal === value) returnvalue = newValnew Observer(value) // 新值如果是对象,也需要对其进行观察}})
}let observer = {name: 'observer',age: 18,tempObj: {n: 1,m: 2}
}new Observer(observer)console.dir(observer)

在这里插入图片描述

http://www.dtcms.com/a/157254.html

相关文章:

  • arduino显示数码管1~9
  • 如何解决IDE项目启动报错 error:0308010C:digital envelope routines::unsupported 问题
  • 【SwitchyOmega安装教程】
  • 案例速成GO+redis 个人笔记
  • Llama factory如何全参数微调 Qwen2.5-7B-Instruct 模型并导入Ollama推理(详细版)
  • spark总结
  • uniapp开发04-scroll-view组件的简单案例
  • 启动命令汇总(Redis / Kafka / Flume / Spark)
  • DIFY 浅尝 - Dify + Ollama 抓取BBC新闻
  • Java学习手册:常用的内置工具类包
  • 云原生--核心组件-容器篇-3-Docker三大核心之--镜像
  • elk中kibana一直处于可用和降级之间且es群集状态并没有问题的解决方法
  • 从 Vue 到 React:React 合成事件
  • 使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分
  • Linux之netlink(2)libnl使用介绍(1)
  • Redis 数据类型全览:特性、场景与操作实例
  • 【Hive入门】Hive动态分区与静态分区:使用场景与性能对比完全指南
  • 游戏引擎学习第245天:wglChoosePixelFormatARB
  • 写入cache时数据格式错误产生的ERRO导致整个测试框架无法运行
  • PID程序实现
  • php一些命名规范 和 css命名规范
  • AIGC在自动化测试领域的创新应用:智能生成测试用例与缺陷预测
  • SpringCloud原理和机制
  • 产销协同的作用是什么?又如何对各部门发挥作用?
  • A. Ideal Generator
  • 【数据融合】基于拓展卡尔曼滤波实现雷达与红外的异步融合附matlab代码
  • 部署大模型需要多少GPU显存?以DeepSeek R1部署为例
  • 直接映射例题及解析
  • [笔记] MCPO搭建教程
  • 【Kafka】Windows环境下生产与消费流程详解(附流程图)