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

android 做分享的网站在线网站排名工具

android 做分享的网站,在线网站排名工具,注册城乡规划师成绩查询,在哪里做网站比较好Vue 3 的响应式设计是其核心特性之一,依赖于 Proxy 和 依赖收集机制,相比 Vue 2 的 Object.defineProperty,Vue 3 的响应式系统更加高效、灵活且易于维护。 以下是 Vue 3 响应式设计的核心原理: 一、核心机制概览 使用 Proxy 实现…

Vue 3 的响应式设计是其核心特性之一,依赖于 Proxy依赖收集机制,相比 Vue 2 的 Object.defineProperty,Vue 3 的响应式系统更加高效、灵活且易于维护。

以下是 Vue 3 响应式设计的核心原理:


一、核心机制概览

  1. 使用 Proxy 实现响应式

    • Vue 3 用 Proxy 包装对象,实现对属性的读取和设置的拦截(getset)。

    • 相比 Vue 2,Proxy 可以监听新增属性和删除属性,避免 Vue 2 的 Vue.set 限制。

  2. 依赖收集(Dep)与触发更新(Trigger)

    • Vue 会在 getter 中收集当前运行的副作用函数(例如组件的渲染函数)。

    • 当数据发生变化时,setter 会触发这些副作用函数,重新执行。

  3. 响应式核心工具函数

    • reactive():将对象转换为响应式对象。

    • ref():将基本类型(如 numberstring)或对象封装成响应式引用。

    • computed():计算属性,具备缓存能力。

    • effect()(Vue 内部 API):注册副作用函数,用于响应式依赖追踪。


二、基本流程图

  1. 调用 reactive(obj) -> 返回 Proxy 包装对象

  2. 首次访问属性 proxy.a -> 执行 get,收集依赖

  3. 修改属性 proxy.a = 2 -> 执行 set,触发依赖更新


三、依赖追踪与触发的简化示意

// 模拟一个简单响应式系统
let targetMap = new WeakMap();function track(target, key) {const effect = activeEffect;if (!effect) return;let depsMap = targetMap.get(target);if (!depsMap) {depsMap = new Map();targetMap.set(target, depsMap);}let deps = depsMap.get(key);if (!deps) {deps = new Set();depsMap.set(key, deps);}deps.add(effect);
}function trigger(target, key) {const depsMap = targetMap.get(target);if (!depsMap) return;const deps = depsMap.get(key);deps && deps.forEach(effect => effect());
}let activeEffect = null;
function effect(fn) {activeEffect = fn;fn(); // 执行函数,会触发 get,从而 trackactiveEffect = null;
}function reactive(obj) {return new Proxy(obj, {get(target, key, receiver) {track(target, key);return Reflect.get(target, key, receiver);},set(target, key, value, receiver) {const result = Reflect.set(target, key, value, receiver);trigger(target, key);return result;}});
}

四、Vue 3 中响应式的优势

特性Vue 2Vue 3
基础实现Object.definePropertyProxy
新增/删除属性需要手动使用 Vue.set原生支持
性能多层嵌套对象递归劫持,性能差延迟代理,性能好
API 风格Options API 为主支持 Composition API

五、实战示例

import { reactive, effect } from 'vue'const state = reactive({ count: 0 })effect(() => {console.log(`count is: ${state.count}`)  // 自动收集依赖
})state.count++ // 自动触发更新

如果你需要可视化原理图,我可以为你画一个响应式原理的流程图,要我帮你画一个吗?

http://www.dtcms.com/wzjs/296933.html

相关文章:

  • 江苏广泽建设公司网站网站建网站建设网站
  • 专做校园购物网站电脑培训学校能学什么
  • 泉州网站制作多少钱微商软文大全
  • 网站推广教程分享网站seo如何做好优化
  • 做设计有哪些好用的素材网站有哪些杭州网站seo推广软件
  • 静海商城网站建设广州网站设计公司
  • 如果在网站做推广连接搜索引擎优化技术有哪些
  • 建设外贸网站公司郑州怎么优化网站排名靠前
  • 温州 网站建设seo优化是做什么的
  • 微信网站地址百度seo关键词排名优化工具
  • 网站建设 全网推广百度电话号码查询
  • 网络教室网站建设亚马逊跨境电商开店流程及费用
  • 潍坊做网站公司下载地图导航手机版免流量费用
  • 衡水建网站多少钱做电商需要学哪些基础
  • 网上做名片的网站重庆seo招聘
  • 武汉规划建设局网站网上兼职外宣推广怎么做
  • 网盘网站开发外贸谷歌推广怎么样
  • 别样海外购怎么开店宁波seo怎么推广
  • 服务器网站后台登陆密码黄框显示培训网站模板
  • 金山做网站网络公司网站模板
  • 本地建设网站云搜索网页版入口
  • 在那个网站做ppt可以赚钱软文推广平台
  • wordpress项目展示设置系统优化软件推荐
  • WordPress安装子目录自动app优化
  • 个人求职网站履历怎么做如何推广产品
  • 买布做衣裳 在哪个网站买好线上推广费用
  • sketch视频教程网站seo经典案例
  • 网架加工厂有招工的吗站长工具查询seo
  • wordpress网站模板怎么用酒吧营销用什么软件找客源
  • 珠海h5模板建站网站搜索引擎优化情况怎么写