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

有了源代码怎么做网站天眼查企业查询

有了源代码怎么做网站,天眼查企业查询,麻城建设局网站停办,做网站如何应用Javaref:基本类型(自动装箱为{ value: … }对象) reactive:对象/数组(直接解构会丢失响应性,需用toRefs) 一、核心差异对比 维度refreactive适用类型基本类型(string/number/boolean&a…

ref:基本类型(自动装箱为{ value: … }对象)
reactive:对象/数组(直接解构会丢失响应性,需用toRefs)

一、核心差异对比

维度refreactive
适用类型基本类型(string/number/boolean)对象/数组/集合类型
响应式实现装箱为 { value: ... } 对象,使用 Object.defineProperty 代理 value 属性基于 Proxy 代理整个对象
解构响应性天然支持,通过 .value 访问需配合 toRefs 保持解构后的响应性
模板语法自动解包(模板中无需 .value直接访问属性,无需额外处理
TS 类型支持显式声明类型(如 Ref<string>自动推断对象属性类型

二、选择策略与最佳实践

  1. 基础类型数据
    • 强制使用 ref:string/number/boolean 等原始类型必须用 ref 包装

    const count = ref(0) // 类型推断为 Ref<number>
    const name = ref<string>('') // 显式类型声明
    
  2. 对象/数组类型
    • 优先使用 reactive:当需要维护整体对象引用时

    const user = reactive({name: 'Alice',age: 25,address: { city: 'Beijing' }
    })
    

    • ref 的特殊场景:

    ◦ 需要整体替换对象时(reactive 无法直接赋值)

    ```typescript
    const config = ref({ theme: 'dark' })
    config.value = { theme: 'light' } // 有效
    ```
    

    ◦ 组合式函数返回需要统一处理

    ```typescript
    function useFeature() {const state = reactive({ x: 0, y: 0 })return { state: toRef(state) } // 返回 Ref 保持统一接口
    }
    ```
    
  3. 解构场景处理
    • reactive 解构必须使用 toRefs:保持响应性链路

    const state = reactive({ a: 1, b: 2 })
    const { a, b } = toRefs(state) // a 和 b 为 Ref 类型
    

    • 嵌套对象处理:结合 toRef 深度解构

    const nested = reactive({ obj: { x: 1 } })
    const xRef = toRef(nested.obj, 'x') // 获取深层属性 Ref
    
  4. 性能优化建议
    • 避免过度使用 reactive:浅层对象优先使用 ref + shallowRef

    const shallowObj = shallowRef({ data: null }) // 仅跟踪 .value 变化
    

    • 大型对象分块处理:将相关属性分组为多个 reactive 对象

    const formData = reactive({basicInfo: { name: '', age: 0 },contact: { email: '', phone: '' }
    })
    

三、典型问题与解决方案

  1. 响应性丢失问题
    • 错误示例:直接解构 reactive 对象

    const state = reactive({ a: 1 })
    let { a } = state // ❌ 失去响应性
    

    • 正确做法:使用 toRefs 转换

    const state = reactive({ a: 1 })
    const { a } = toRefs(state) // ✅ 保持响应性
    
  2. 类型推断增强
    • 复杂对象类型定义:通过接口约束 reactive

    interface User {name: stringage: number
    }
    const user = reactive<User>({ name: '', age: 0 })
    

    • Ref 联合类型处理:使用泛型或类型断言

    const data = ref<string | number>('init') // 联合类型
    const value = ref(null) as Ref<number | null> // 类型断言
    
  3. 异步更新陷阱
    • 批量更新优化:reactive 的深层响应 vs ref 的浅层触发

    const list = reactive([1, 2, 3])
    list.push(4) // ✅ 触发更新const arr = ref([1, 2, 3])
    arr.value = [...arr.value, 4] // ✅ 必须替换引用
    

四、原理级对比

机制refreactive
响应式追踪追踪 .value 属性的 get/set 操作深度代理对象,追踪所有属性访问
内存开销每个 ref 创建独立包装对象共享 Proxy 处理器,内存占用更优
嵌套处理自动对对象值调用 reactive递归代理所有嵌套对象
引用替换支持整体替换 .value只能修改属性,不能替换整个对象

五、综合选择流程图

判断数据类型 → 是否基本类型? → 是 → 使用 ref↓ 否
是否需要整体替换? → 是 → 使用 ref 包裹对象↓ 否
是否需要深度解构? → 是 → reactive + toRefs↓ 否
是否处理集合类型? → 是 → reactive↓ 否
默认使用 reactive

总结:
ref 是通用解决方案,尤其适合基本类型和需要引用替换的场景

reactive 专为对象设计,提供更自然的深度响应式访问

• 结合 toRefs/toRef 解构和 TypeScript 类型系统,可构建类型安全且高维护性的响应式代码

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

相关文章:

  • 南宁制作网站公司东莞疫情最新消息今天新增病例
  • 广州网站营销推广设计公司培训课程有哪些
  • 嘉兴 企业网站 哪家电子商务网站建设论文
  • 网站框架布局百度指数数据分析报告
  • 建设网站要服务器吗网络推广要求
  • 珠海市官网网站建设价格大型的营销型网站
  • 传奇霸主网页版太原seo
  • 找公司做网站注意事项四川网站seo
  • 大城b2c网站建设报价松原新闻头条
  • 网站使用自己的服务器培训学校招生方案范文
  • 做vi的网站电商网站网址
  • 中山网站建设方案托管哪里可以学企业管理培训
  • 关于做我女朋友的网站网络推广协议
  • 如何做充值网站长沙seo公司排名
  • 网店美工培训教程seo sem推广
  • 做电影网站需要服务器吗竞价推广账户竞价托管公司
  • 有关网站建设的电子商务论文重庆森林台词
  • 旅游平台网站合作建设方案网络营销推广及优化方案
  • 苏州官网设计山东自助seo建站
  • 做网站平台多少钱怎样做网络推广挣钱
  • 做网站开发需要什么怎么建网页
  • 小程序源码怎么使用的石狮seo
  • 网站反链是什么意思安卓手机优化神器
  • 网站做百度百科业务网站制作
  • 艺术字logo在线生成器裤子seo关键词
  • 响应式网站模板百度推广一般要多少钱
  • 广东城乡建设厅网站信息流优化师面试常见问题
  • 哪种网站今日新闻头条新闻今天
  • 装饰公司网站模板广州谷歌seo
  • 校园在线网站怎么做重庆网页优化seo公司