vue3中watch监听的应用技巧

在 Vue 3 中,watch 的使用方式与 Vue 2 有所不同,主要是因为 Vue 3 引入了 Composition API,使得状态管理和副作用处理更加灵活和模块化。下面列出了一些 Vue 3 中 watch 监听的应用技巧:

1、监听单一的响应式引用(Ref) 当你有一个 ref 并且想在其值发生变化时执行某些操作,你可以直接使用 watch 函数来监听这个 ref。

   import {
    ref, watch } from 'vue'

   const count = ref(0)

   watch(count, (newValue, oldValue) => {
   
     console.log(`Count changed from ${
     oldValue} to ${
     newValue}`)
   })

2、监听多个响应式引用 如果你想同时监听多个 ref,可以使用一个箭头函数返回一个对象,其中的键对应 ref 名称,值为 ref 本身。

   const count = ref(0)
   const name = ref('John')

   watch<
### 如何在 Vue 3 中正确销毁 `watch` 监听器 在 Vue 3 中,为了防止不必要的资源占用以及避免内存泄漏等问题,在不再需要监听某些数据变化时应当及时停止相应的 `watch` 监听。对于组件内部定义的响应式依赖关系而言,可以通过返回一个取消订阅函数的方式来实现这一点。 当创建一个 `watch` 监听器时,可以将其赋值给一个常量或变量,并通过调用该变量来停止监听。下面给出具体的代码示例: ```typescript <script setup lang="ts"> import { watch, reactive } from &#39;vue&#39;; let data = reactive({ val: 2, }); // 将 watch 的结果存储在一个名为 stopWatch 的变量中 const stopWatch = watch( () => data.val, (newVal) => { console.log(`新的值为 ${newVal}`); // 当满足特定条件时,执行此回调内的逻辑并停止监听 if (newVal >= 6) { stopWatch(); } }, { immediate: true, deep: true } ); function add() { data.val++; } </script> ``` 上述例子展示了如何利用 `stopWatch()` 方法手动终止对 `data.val` 属性改变的监视过程[^2]。需要注意的是,如果是在组合式 API (`<script setup>`) 下使用,则可以直接按照这种方式处理;而在选项式 API 中则需考虑将清理工作放在合适的生命周期钩子内完成,比如 `beforeUnmount` 阶段[^3]。 另外值得注意的一点是,除了显式的调用停止方法外,还可以借助于 Vue 组件自身的生命周期机制自动管理这些副作用。例如可以在卸载组件之前自动清除所有的侦听器,从而简化开发者的工作流程[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值