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

Vue3 watch使用

在Vue 3中,监听数据变化主要有以下几种方式:官网👉🏻 侦听器 | Vue.js

监听一个ref

const count = ref(0);
watch(count, (newValue, oldValue) => {console.log(`count值从${oldValue}变成了${newValue}`);
});

监听一个reactive对象的属性

const state = reactive({ count: 0 });
watch(
() => state.count,
(newValue, oldValue) => {console.log(`count值从${oldValue}变成了${newValue}`);
});

监听多个数据源

watch(
[() => state.count, count], // 可以同时监听ref和reactive的属性
([newCount1, newCount2], [oldCount1, oldCount2]) => {// 处理变化
});

深度监听和立即执行

const state = reactive({person: { name: 'Alice',age: 30}
});watch(
() => state.person,
(newValue, oldValue) => {// 注意:对于对象或数组,新值和旧值相同,除非使用深度监听console.log('person变化了', newValue);
},
{ deep: true, immediate: true } // 深度监听,并且立即执行一次
);

使用watchEffect

import { ref, watchEffect } from 'vue';
const count = ref(0);
watchEffect(() => {console.log('count的值是:', count.value);
});// 停止监听:
const stop = watchEffect(() => {// ...
});

使用计算属性`computed`

import { ref, computed } from 'vue';
const count = ref(0);
const doubleCount = computed(() => count.value * 2);
// 计算属性默认是只读的,如果需要可写,可以提供一个setter
const writableComputed = computed({get: () => count.value * 2,set: (val) => {count.value = val / 2;
}});

在Vue 3中,监听数据变化主要有以下几种方式:

1. 使用`watch`函数:用于监听单个或多个响应式数据源,并在数据变化时执行回调函数。

2. 使用`watchEffect`函数:立即执行传入的函数,并响应式追踪其依赖,当依赖变化时重新运行该函数。

3. 使用计算属性`computed`:当依赖的响应式状态发生变化时,计算属性会自动重新计算。

4. 使用`ref`和`reactive`创建的响应式变量:直接修改这些变量,视图会自动更新。

相关文章:

  • OceanBase v4.3.5 特性解读:通过OSS WORM特性进行备份归档
  • CVE-2024-23897源码分析与漏洞复现(Jenkins 任意文件读取)
  • HTTP状态码大全:含义、产生原因及排查指南
  • 实战案例-FPGA如何实现JESD204B可重复的延迟
  • 实战案例-FPGA如何实现JESD204B确定性延迟
  • 【已解决】python的kafka-python包连接kafka报认证失败
  • Java 通用实体验证框架:从业务需求到工程化实践【生产级 - 适用于订单合并前置校验】
  • 功能界面的组件化编码流程
  • 鸿蒙接入微信sdk登录 解决提示BundleID信息校验不通过
  • NoSQL数据库技术详解:Redis与MongoDB的应用与实践
  • kotlin kmp 副作用函数 effect
  • 【RPA干货】RPA自动化程序是什么?-rpa百科
  • CentOS7下的大数据NoSQL数据库HBase集群部署
  • gitlab-runner 如何配置使用 Overwrite generated pod specifications
  • 使用 ML.NET Model Builder 训练机器学习模型进行预测性维护
  • ArcGIS Pro 3.4 二次开发 - 任务
  • NLP学习路线图(三十八): 文本摘要
  • 21、Create React App的使用
  • 医学图像分割最新进展
  • Leetcode 3574. Maximize Subarray GCD Score
  • 海口做网站的公司/最近军事新闻
  • 长沙公司网站设计/关键词整站优化
  • 今天下午疫情发布会直播/seo流量排名工具
  • 网站低保图用什么做/网站功能优化的方法
  • 网站建设和管理情况调查表/手机百度app下载安装
  • 宇说建筑网站/seo应该怎么做