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

榆林建设银行的网站seo怎么做?

榆林建设银行的网站,seo怎么做?,沭阳奥体小区做网站的,自媒体视频剪辑去哪里学在 Vue 3 中,ref 和 reactive 是两种不同的响应式数据创建方式,它们的区别和实现方式如下: 一、核心区别 特性refreactive适用类型基本类型 对象类型仅对象类型(对象/数组/Map/Set)访问方式通过 .value 访问直接访问…

在 Vue 3 中,refreactive 是两种不同的响应式数据创建方式,它们的区别和实现方式如下:


一、核心区别

特性refreactive
适用类型基本类型 + 对象类型仅对象类型(对象/数组/Map/Set)
访问方式通过 .value 访问直接访问属性
解构响应性需要 toRefs 保持解构后的响应性直接解构会丢失响应性
深层响应性自动递归代理嵌套对象自动递归代理嵌套对象
模板自动解包支持(模板中无需 .value直接访问属性

二、实现方式

1. ref 的实现
  • 核心机制:通过一个对象包装值(RefImpl 类),利用 getter/setter + Proxy 实现响应式。

  • 源码关键点

class RefImpl<T> {private _value: Tprivate _rawValue: T // 原始值(避免对象被 reactive 二次代理)constructor(value: T) {this._rawValue = valuethis._value = isObject(value) ? reactive(value) : value}get value() {track(this, TrackOpTypes.GET, 'value') // 依赖收集return this._value}set value(newVal) {if (hasChanged(newVal, this._rawValue)) {this._rawValue = newValthis._value = isObject(newVal) ? reactive(newVal) : newValtrigger(this, TriggerOpTypes.SET, 'value') // 触发更新}}}
  • 特点

    • 对基本类型直接通过 getter/setter 监听。
    • 对对象类型内部使用 reactive 代理。
2. reactive 的实现
  • 核心机制:基于 Proxy 代理对象,拦截 get/set/deleteProperty 等操作。

  • 源码关键点

function reactive(target) {const proxy = new Proxy(target, {get(target, key, receiver) {track(target, TrackOpTypes.GET, key) // 依赖收集const res = Reflect.get(target, key, receiver)return isObject(res) ? reactive(res) : res // 递归代理嵌套对象},set(target, key, value, receiver) {const oldValue = target[key]const result = Reflect.set(target, key, value, receiver)if (hasChanged(value, oldValue)) {trigger(target, TriggerOpTypes.SET, key) // 触发更新}return result}})return proxy}
  • 特点

    • 通过 Proxy 实现深层响应式。
    • 递归代理嵌套对象(性能优化可通过 shallowReactive 避免)。

三、使用场景

1. 使用 ref 的场景
  • 需要响应式的基本类型值(如 string/number/boolean)。
  • 需要显式控制值的引用(如需要重新赋值整个对象时)。
  • 需要兼容模板自动解包(模板中无需 .value)。
2. 使用 reactive 的场景
  • 需要响应式的复杂对象或数组。
  • 需要保持对象引用不变,仅修改属性。
  • 需要深层响应式(如嵌套对象自动代理)。

四、最佳实践

  1. 优先选择 ref
    对于基本类型或需要频繁重新赋值的对象,使用 ref 更直观。

  2. 复杂对象用 reactive
    当需要处理嵌套结构且不需要重新赋值整个对象时,reactive 更简洁。

  3. 解构时用 toRefs
    解构 reactive 对象时,使用 toRefs 保持响应性:

const state = reactive({ count: 0 })const { count } = toRefs(state) // 解构后仍为 Ref 类型

五、底层原理对比

机制refreactive
依赖收集通过 getter 中的 track通过 Proxy.get 中的 track
触发更新通过 setter 中的 trigger通过 Proxy.set 中的 trigger
性能开销基本类型更低,对象类型与 reactive 相同对象类型高效,嵌套对象递归代理

总结

  • ref:更通用的响应式工具,通过 .value 访问,适合基本类型或需要重新赋值的对象。
  • reactive:专为对象设计的响应式工具,适合深层嵌套结构,直接访问属性更简洁。
  • 实现差异ref 通过 RefImpl 类包装值,reactive 通过 Proxy 代理对象。
http://www.dtcms.com/wzjs/316167.html

相关文章:

  • crm客户关系管理平台做网站建设优化的公司排名
  • 公司简介简短点的百度地图排名可以优化吗
  • 手机网站建设比较好的公司重庆网站优化公司
  • 广州品牌网站营销软文
  • php众筹网站程序源码怎么制作网页里面的内容
  • 网站制作培训中心免费外链代发平台
  • 简述企业网站建设的流程百度指数对比
  • 聊城网站建设电话seo怎么做教程
  • 制作小程序代码汕头seo排名公司
  • 百度做网站投广告营销方法有哪些
  • 鹤壁建设网站推广哪家靠谱广告引流推广平台
  • 网站制作开发及优化是什么网站优化价格
  • 营销网站建设推广微信小程序怎么做
  • 网站开发毕业设计周志百度官方网站首页
  • 刘琪 找谁做网站靠谱东莞做网站推广
  • 零基础自学网站建设建网站找哪个公司
  • 怎么网站制作十大舆情网站
  • 中国今天刚刚发生的新闻辽宁好的百度seo公司
  • 手机网站改版了seo如何优化网站推广
  • 常州网站建设公司机构百度收录怎么做
  • wordpress规则百度seo排名优化联系方式
  • 大连凯杰建设有限公司网站网站seo服务
  • 网站备案去哪里备案卡一卡二卡三入口2021
  • 自己做网站还能挣钱吗企业网站制作与维护
  • 海南网站设计网页模板免费下载
  • 国家开发投资集团绍兴seo网站优化
  • 淘宝客优惠卷网站模板seo长尾关键词优化
  • 网站开发合肥长沙网站优化seo
  • 网站建设一次线上运营推广方案
  • 营销型网站建设概述哈尔滨seo关键词优化