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

网站开发者模式百度广告推广平台

网站开发者模式,百度广告推广平台,金阊做网站价格,龙华网站建设方案案例深度监听 ref 和 reactive 的区别详解 一、ref 的深度监听(示例代码)关键点:1. ref 的存储方式:2. 监听 ref 的特性 二、reactive 的深度监听(示例代码)关键点:1. reactive 的深度响应性2. 监听…

深度监听 ref 和 reactive 的区别详解

    • 一、ref 的深度监听(示例代码)
      • 关键点:
        • 1. ref 的存储方式:
        • 2. 监听 ref 的特性
    • 二、reactive 的深度监听(示例代码)
      • 关键点:
        • 1. reactive 的深度响应性
        • 2. 监听 reactive 的特性
    • 三、核心区别总结
    • 四、最佳实践建议
      • 1. 优先使用 reactive
      • 2. 明确 ref 的使用场景
      • 3. 简化 watch 配置


以下从响应式原理、监听方式和实际表现三个维度,分析二者的核心区别:

一、ref 的深度监听(示例代码)

<template><div class="person"><p>嵌套值:{{ refObj.nested.value }}</p><button @click="refObj.nested.value = '新的值'">修改值</button></div></template><script lang="ts" setup>
import { ref, watch } from 'vue';
const refObj = ref({nested: {value: "初始值"}
});
watch(refObj, (newVal) => {console.log("ref 嵌套变化:", newVal.nested.value);
}, { deep: true }); // 必须显式设置 deep: truewatch(refObj.value, (newVal) => {console.log("ref 嵌套变化:", newVal.nested.value);
}); // 若改为监听refObj.value(即 reactive 对象),则无需 deep</script>

关键点:

1. ref 的存储方式:

ref 会将对象包裹在 .value 属性中,底层自动用 reactive 转换嵌套对象。(即 refObj.value 是 reactive 代理对象)

2. 监听 ref 的特性
  • 直接监听 refObj(而非 .value)时,需要显式设置 deep: true 才能捕获嵌套属性变化。若不设置 deep,仅当整个 .value 被替换时才会触发监听。
  • 等价替代方案
    若改为监听 refObj.value(即 reactive 对象),则无需 deep:

二、reactive 的深度监听(示例代码)

const reactiveObj = reactive({ nested: { value: "初始值" } 
});watch(() => reactiveObj, (newVal) => {console.log("reactive 嵌套变化:", newVal.nested.value);
}, { deep: true }); // deep:true 在此处是冗余的

关键点:

1. reactive 的深度响应性

reactive 创建的代理对象默认支持深层级响应,修改任意嵌套属性都会触发更新。

2. 监听 reactive 的特性
  • 直接监听 reactiveObj 时,无需 deep 即可自动深度监听。
    示例代码中的 () => reactiveObj 是冗余写法,直接传递 reactiveObj 即可:
watch(reactiveObj, (newVal) => {console.log("reactiveObj 嵌套变化:", newVal.nested.value);
}); // 直接监听 reactiveObj 时,无需 deep 即可自动深度监听
  • 若监听一个返回 reactive 对象的函数(如 () => reactiveObj),需开启深度监听:{deep:true}
watch(()=>reactiveObj, (newVal) => {console.log("reactiveObj 嵌套变化:", newVal.nested.value);
},{deep:true}); // 监听一个返回reactive对象的函数,deep:true 开启深度监听
  • 若监听 reactiveObj.nested.value 时,需使用函数式写法()=>reactiveObj.nested.value,无需开启深度监听。
watch(()=>reactiveObj.nested.value,(newVal,oldVal)=>{console.log("reactiveObj 嵌套变化:", newVal,oldVal);
}); // 监听 reactiveObj.nested.value 时,需使用函数式写法,deep 选项无效

三、核心区别总结

特性ref (对象类型)reactive
数据存储方式包裹在 .value 中直接代理对象
默认深度监听否(需显式设置 deep)
推荐监听方式监听 .value (无需 deep)直接监听对象
适用场景基本类型或需要替换整个对象复杂对象,需深层级响应式

四、最佳实践建议

1. 优先使用 reactive

处理复杂对象时,reactive 的自动深度响应更简洁高效。

2. 明确 ref 的使用场景

当需要替换整个对象或处理基础类型时,选择 ref。

3. 简化 watch 配置

  • 监听 ref 的 .value 替代显式 deep
  • 直接传递 reactive 对象而非函数返回值

通过理解这些差异,可以更精准地选择响应式工具,并避免不必要的性能消耗。

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

相关文章:

  • 企业网站wordpressseo是搜索引擎优化吗
  • 网站开发流程可规划为哪三个阶段2023知名品牌营销案例100例
  • node.js 做网站广告海外推广
  • 大屏网站模板短视频培训学校
  • 提供域名申请的网站小网站关键词搜什么
  • 深圳网站开发制作引流推广接单
  • 免费培训机构奶糖 seo 博客
  • 硬件开发包冯耀宗seo课程
  • 网站seo置顶seo每天一贴博客
  • 什么网站可以做设计兼职短视频seo排名加盟
  • 社区子网站群建设广告联盟点击赚钱平台
  • 国产化网站建设seo sem是指什么意思
  • 做产品批发生意用什么类型的网站好google网站搜索
  • 大红门做网站开发一个app平台大概需要多少钱?
  • 网站建制作公司佛山优化推广
  • 哪个网站可以做批发玻璃胶市场营销策划案的范文
  • 凸一品牌策划公司百度seo公司整站优化
  • 武汉手机网站建设动态推广引流工具
  • 西安模板网站服务商郑州seo优化大师
  • 织梦 手机网站模板网络销售平台有哪些
  • angular2做的网站有常州百度seo排名
  • 淘客网站推广免备案最新的全国疫情
  • 张家港高端网站建设站长工具域名解析
  • 如何将自己做的网站传到网上霸屏推广
  • 南宁网站建设seo免费域名注册服务网站
  • 凡科网站建设网站上海百度竞价
  • 中牟网站建设活动营销的方式有哪些
  • 织梦网站建设教程怎么做推广让别人主动加我
  • 践行新使命忠诚保大庆网站建设下载百度卫星导航
  • 吉林市城市建设管理执法局网站成都达洱狐网络科技有限公司