技术文摘
Vue3 中 watch 的使用方法
2025-01-10 20:41:49 小编
Vue3 中 watch 的使用方法
在 Vue3 的响应式系统中,watch
是一个非常实用的函数,它用于响应式地监听一个或多个数据源的变化,并在数据源变化时执行相应的副作用操作。下面将详细介绍它的使用方法。
基本使用
watch
最基本的用法是监听一个响应式数据的变化。例如,有一个响应式的 ref
:
<template>
<div>
<input v-model="message">
</div>
</template>
<script setup>
import { ref, watch } from 'vue';
const message = ref('');
watch(message, (newValue, oldValue) => {
console.log(`新值: ${newValue}, 旧值: ${oldValue}`);
});
</script>
在上述代码中,watch
监听了 message
的变化。每当 message
的值发生改变时,回调函数就会被触发,打印出新值和旧值。
监听多个数据源
watch
也可以同时监听多个数据源。可以通过数组的形式传入多个响应式数据。
import { ref, watch } from 'vue';
const count1 = ref(0);
const count2 = ref(0);
watch([count1, count2], (newValues, oldValues) => {
console.log('count1 或 count2 发生了变化');
console.log('新值:', newValues);
console.log('旧值:', oldValues);
});
这里,只要 count1
或 count2
其中任何一个值发生变化,watch
的回调函数就会执行。
深度监听
对于对象类型的响应式数据,默认情况下 watch
只会监听对象的引用变化。如果想要监听对象内部属性的变化,需要使用深度监听。
import { ref, watch } from 'vue';
const user = ref({ name: '张三', age: 25 });
watch(user, (newValue, oldValue) => {
console.log('用户信息发生了变化');
}, { deep: true });
// 修改对象内部属性
user.value.name = '李四';
通过设置 { deep: true }
选项,watch
就能深度监听 user
对象内部属性的变化。
立即执行
有时候我们希望在 watch
一开始就执行一次回调函数,可以使用 immediate
选项。
import { ref, watch } from 'vue';
const number = ref(0);
watch(number, (newValue) => {
console.log('当前数字:', newValue);
}, { immediate: true });
设置 { immediate: true }
后,在 watch
初始化时,回调函数就会立即执行一次,传入当前 number
的初始值。
Vue3 的 watch
函数为我们提供了强大而灵活的响应式监听功能,在实际项目开发中,合理运用这些特性能够高效地处理数据变化带来的各种业务逻辑。
- 探秘Go语言中的包与模块
- PHP函数性能优化之基准测试实践
- Go中高效遍历大型复杂数据结构的方法
- Golang中函数并发编程错误的有效处理方法
- C++中指定函数返回移动语义类型的方法
- C++函数Lambda表达式高阶进阶指南
- Golang函数并发编程最佳实践:WaitGroup的使用时机
- 优化PHP函数与C扩展交互性能的方法
- PHP 函数与 C 扩展交互时的安全考量有哪些
- PHP异常处理中捕获多个异常的方法
- PHP函数单元测试用例设计模式
- PHP函数调试外部函数调用的方法
- Golang中使用context实现函数回调的方法
- PHP扩展开发:构建与PHP函数交互的C API
- 优化 Golang 函数链:提升性能与效率的策略