vue3 ref和reactive使用watch属性的方法和区别

在Vue 3中,您可以使用watch函数和watch选项来监视refreactive创建的响应式数据的变化。下面是它们的使用方法和区别:

使用方法:

使用refwatch
复制代码
import { ref, watch } from 'vue';

const count = ref(0);

watch(count, (newVal, oldVal) => {
  console.log(`count 从 ${oldVal} 变为 ${newVal}`);
});
使用reactivewatch
复制代码
import { reactive, watch } from 'vue';

const state = reactive({
  count: 0,
});

watch(
  () => state.count,
  (newVal, oldVal) => {
    console.log(`count 从 ${oldVal} 变为 ${newVal}`);
  }
);

区别:

  1. 对单个值的监视:

    • ref用于创建单个基本数据类型的响应式数据,可以直接通过watch来监视其变化。
    • reactive用于创建包含多个属性的响应式对象,需要通过() => state.count这样的方式来指定要监视的属性。
  2. 访问值的方式:

    • ref中,您需要使用.value来访问或修改其值。
    • reactive中,您可以直接访问和修改其属性。
  3. 适用场景:

    • ref适合用于创建单个基本数据类型的响应式数据,例如数字、字符串等。
    • reactive适合用于创建包含多个属性的响应式对象。

总之,无论是ref还是reactive创建的数据,都可以使用watch来监视其变化,并执行相应的操作。只是在使用方法和适用场景上有一些区别。

相关推荐
京东云开发者6 分钟前
京东Taro Native框架静态布局直渲提速
前端
程序员小羊!7 分钟前
03JavaScript预备知识
前端
前端的阶梯7 分钟前
Cursor 开发 Python 项目完全指南
前端·人工智能·后端
半兽先生8 分钟前
flv.js解决其中一个监控断线导致其他的监控播放阻塞
开发语言·javascript·ecmascript
艾伦野鸽ggg16 分钟前
JavaScript 基础语法速通
前端·javascript
不懂的浪漫18 分钟前
AI 时代还需要买课吗?我用 Skills + Markdown + HTML 搭了一套自学系统
前端·人工智能·html·skill
前端的阶梯20 分钟前
Conda 开发 Python 程序完全指南
前端·人工智能·后端
zhengfei61122 分钟前
第2章 Agent 核心组件深度解析
前端·javascript·react.js
Linsk28 分钟前
前端代码压缩对浏览器兼容性的影响
前端
yingyima32 分钟前
凌晨3点的闹钟:分布式定时任务设计实战
前端