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来监视其变化,并执行相应的操作。只是在使用方法和适用场景上有一些区别。

相关推荐
Kimser18 小时前
QT C++ QWebEngine与Web JS之间通信
javascript·c++·qt
excel19 小时前
HBuilderX 配置 adb.exe + 模拟器端口一体化完整指南
前端
拖拉斯旋风19 小时前
与 AI 协作的新范式:以文档为中心的开发实践
前端
dualven_in_csdn19 小时前
【electron】解决CS里的全屏问题
前端·javascript·electron
库克表示19 小时前
MessageChannel-通信机制
前端
不爱吃糖的程序媛19 小时前
Electron 文件选择功能实战指南适配鸿蒙
javascript·electron·harmonyos
拖拉斯旋风19 小时前
深入理解 Ajax:从原理到实战,附大厂高频面试题
前端·ajax
用户40993225021219 小时前
Vue 3响应式系统的底层机制:Proxy如何实现依赖追踪与自动更新?
前端·ai编程·trae
www_stdio19 小时前
使用 Ajax 实现异步数据请求:从原理到实践
javascript·ajax·html
却尘19 小时前
一个"New Chat"按钮,为什么要重构整个架构?
前端·javascript·next.js