vue3 wacth写法大全

发布时间:2026/7/10 13:21:36

vue3 wacth写法大全
Vue3 组合式API watch 完整可运行示例仅script setup带赋值打印输出统一前置导入vuescript setupimport { ref, reactive, watch, watchEffect, watchPostEffect, watchSyncEffect } from vue/script示例 1监听单个 ref 基础用法vuescript setupimport { ref, watch } from vueconst num ref(0)watch(num, (newVal, oldVal) {console.log(新值, newVal)console.log(旧值, oldVal)})// 修改数据num.value 10// 输出// 新值10// 旧值0/script示例 2watch 搭配 immediate 初始化立即执行vuescript setupimport { ref, watch } from vueconst num ref(0)watch(num, (newVal, oldVal) {console.log(新值, newVal)console.log(旧值, oldVal)}, { immediate: true })// 无需修改页面加载自动输出// 首次加载输出// 新值0// 旧值undefined// 修改数据num.value 66// 输出// 新值66// 旧值0/script示例 3监听完整 reactive 对象需 deep 深度监听vuescript setupimport { reactive, watch } from vueconst user reactive({ name: 小明, info: { age: 18 } })watch(user, (newVal, oldVal) {console.log(新对象, newVal)console.log(旧对象, oldVal)}, { deep: true })// 修改内层属性user.info.age 25// 输出// 新对象{ name: 小明, info: { age: 25 } }// 旧对象{ name: 小明, info: { age: 25 } }/script示例 4精准监听 reactive 单层属性getter 函数无需 deepvuescript setupimport { reactive, watch } from vueconst user reactive({ name: 小明, info: { age: 18 } })watch(() user.name, (newVal, oldVal) {console.log(新名字, newVal)console.log(旧名字, oldVal)})// 修改nameuser.name 小红// 输出// 新名字小红// 旧名字小明/script示例 5精准监听 reactive 多层嵌套属性getter 函数vuescript setupimport { reactive, watch } from vueconst user reactive({ name: 小明, info: { age: 18 } })watch(() user.info.age, (newVal, oldVal) {console.log(新年龄, newVal)console.log(旧年龄, oldVal)})// 修改嵌套属性user.info.age 30// 输出// 新年龄30// 旧年龄18/script示例 6同时监听多个数据源数组监听源vuescript setupimport { ref, reactive, watch } from vueconst keyword ref()const user reactive({ info: { age: 18 } })const type ref(1)watch([keyword, () user.info.age], ([newKey, newAge], [oldKey, oldAge]) {console.log(新关键词, newKey)console.log(新年龄, newAge)console.log(旧关键词, oldKey)console.log(旧年龄, oldAge)})// 修改 keywordkeyword.value 前端// 输出// 新关键词前端// 新年龄18// 旧关键词// 旧年龄18// 修改年龄user.info.age 22// 输出// 新关键词前端// 新年龄22// 旧关键词前端// 旧年龄18/script示例 7flush 配置控制执行时机 postDOM 更新后执行vuescript setupimport { ref, watch } from vueconst num ref(0)watch(num, (newVal) {console.log(DOM更新完成当前值, newVal)}, { flush: post })num.value 99// 等待DOM更新后输出// DOM更新完成当前值99/script示例 8手动停止监听vuescript setupimport { ref, watch } from vueconst num ref(0)const stopWatch watch(num, (newVal) {console.log(数值变更, newVal)})num.value 10// 输出数值变更10// 停止监听stopWatch()num.value 20// 无任何打印输出/script示例 9watch 完整配置项immediatedeepflush 调试钩子vuescript setupimport { reactive, watch } from vueconst user reactive({ name: 小明, info: { age: 18 } })watch(() user.info.age,(newVal, oldVal) {console.log(新年龄, newVal)console.log(旧年龄, oldVal)},{immediate: true,deep: false,flush: post,onTrack(e) {console.log(调试-收集依赖, e)},onTrigger(e) {console.log(调试-触发监听, e)}})// 页面初始化自动输出// 新年龄18// 旧年龄undefineduser.info.age 28// 输出// 调试-触发监听 ...// 新年龄28// 旧年龄18/script示例 10watchEffect 自动收集依赖无 oldVal自带 immediatevuescript setupimport { ref, reactive, watchEffect } from vueconst num ref(0)const user reactive({ name: 小明 })watchEffect((onCleanup) {console.log(数字, num.value, 用户名, user.name)// 副作用清理函数onCleanup(() {console.log(执行清理操作)})})// 页面初始化自动输出// 数字0 用户名小明num.value 50// 输出// 执行清理操作// 数字50 用户名小明user.name 小李// 输出// 执行清理操作// 数字50 用户名小李/script示例 11watchPostEffect 简写 flush:postvuescript setupimport { ref, watchPostEffect } from vueconst num ref(0)watchPostEffect(() {console.log(DOM已更新num值, num.value)})num.value 100// DOM更新后输出// DOM已更新num值100/script示例 12watchSyncEffect 同步执行 flush:syncvuescript setupimport { ref, watchSyncEffect } from vueconst num ref(0)watchSyncEffect(() {console.log(同步触发num值, num.value)})num.value 88// 立刻同步输出// 同步触发num值88/script

相关新闻

5步掌握Python网站离线下载:WebSite-Downloader完整使用指南

5步掌握Python网站离线下载:WebSite-Downloader完整使用指南

2026/7/10 13:21:36

5步掌握Python网站离线下载:WebSite-Downloader完整使用指南 【免费下载链接】WebSite-Downloader A website downloader written with Python 项目地址: https://gitcode.com/gh_mirrors/web/WebSite-Downloader 你是否曾为重要网页突然消失而焦虑&#xff…

5分钟搭建个人离线小说库:fanqienovel-downloader完整指南

5分钟搭建个人离线小说库:fanqienovel-downloader完整指南

2026/7/10 13:21:36

5分钟搭建个人离线小说库:fanqienovel-downloader完整指南 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 想要随时随地阅读番茄小说却受限于网络?担心心爱的小说突…

Vivaldi天线CST设计与实现

Vivaldi天线CST设计与实现

2026/7/10 13:21:36

注:具体仿真过程参考B站 vivaldi天线CST设计与仿真_哔哩哔哩_bilibili 1.Vivaldi天线简介 Vivaldi天线,也称锥形槽天线(TSA),是一种针对宽带应用的理想天线。它结构简单、易于制造,同时还有很高的增益,因此非常受欢迎。Vivaldi天线具有很强的可塑性。天线在一层柔韧的薄…

国产大模型选型决策树(附可执行Checklist):DeepSeek与Qwen在私有化部署、合规审计、多模态扩展中的5个致命差异

国产大模型选型决策树(附可执行Checklist):DeepSeek与Qwen在私有化部署、合规审计、多模态扩展中的5个致命差异

2026/7/10 14:41:39

更多请点击: https://kaifayun.com 第一章:国产大模型选型决策树的底层逻辑与适用边界 国产大模型选型并非单纯比拼参数规模或基准测试分数,其核心在于构建与业务场景强耦合的技术适配逻辑。决策树的根节点应锚定“任务类型—数据特性—部署…

终极微博图片批量下载神器:免登录3分钟搞定全相册

终极微博图片批量下载神器:免登录3分钟搞定全相册

2026/7/10 14:41:39

终极微博图片批量下载神器:免登录3分钟搞定全相册 【免费下载链接】weiboPicDownloader Download weibo images without logging-in 项目地址: https://gitcode.com/gh_mirrors/we/weiboPicDownloader 还在为保存微博图片而烦恼吗?每次都要手动一…

grpool高级特性:WaitGroup与JobQueue的最佳实践指南

grpool高级特性:WaitGroup与JobQueue的最佳实践指南

2026/7/10 14:41:39

grpool高级特性:WaitGroup与JobQueue的最佳实践指南 【免费下载链接】grpool Lightweight Goroutine pool 项目地址: https://gitcode.com/gh_mirrors/gr/grpool 想要在Go并发编程中实现高效的任务调度吗?grpool作为一款轻量级的Goroutine池库&am…

网上登报平台哪个好?印章遗失声明线上办理渠道深度测评

网上登报平台哪个好?印章遗失声明线上办理渠道深度测评

2026/7/10 14:41:39

一、 为什么印章遗失必须登报? 依据《民法典》第172条关于表见代理的规定,如果有人持你遗失的印章对外签订合同,而相对方是善意且有理由相信其代表公司的,这份合同可能会对公司产生直接法律效力。 登报的作用,就是通…

YouTube算法红利正在消失?用Gemini做实时竞品视频语义聚类——3天搭建可落地的A/B分析看板

YouTube算法红利正在消失?用Gemini做实时竞品视频语义聚类——3天搭建可落地的A/B分析看板

2026/7/10 14:41:39

更多请点击: https://intelliparadigm.com 第一章:YouTube算法红利消退的底层逻辑与监测必要性 YouTube算法正经历从“流量普惠”向“价值闭环”的结构性转向。早期基于观看时长与点击率的粗放式推荐机制,已被融合用户意图建模、跨平台行为归…

League Akari助手:终极英雄联盟智能工具箱,快速提升你的游戏水平

League Akari助手:终极英雄联盟智能工具箱,快速提升你的游戏水平

2026/7/10 14:31:39

League Akari助手:终极英雄联盟智能工具箱,快速提升你的游戏水平 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/9 19:40:56

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/9 18:28:30

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/10 6:57:56

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

终极原神FPS解锁器完整指南:轻松突破60帧限制

终极原神FPS解锁器完整指南:轻松突破60帧限制

2026/7/10 0:00:42

终极原神FPS解锁器完整指南:轻松突破60帧限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 原神FPS解锁器是一款专为《原神》玩家设计的开源工具,通过先进的Wri…

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?[特殊字符]

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?[特殊字符]

2026/7/10 0:00:42

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?🎵 【免费下载链接】YesPlayMusic 高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron: 项目地址: https://gitcode.com/gh_mirrors/ye/YesPlayMusic…

从零实现红黑树:手写C++的set与map容器

从零实现红黑树:手写C++的set与map容器

2026/7/10 0:00:42

1. 项目概述:从STL容器到自研轮子在C的日常开发中,std::set和std::map是我们再熟悉不过的伙伴了。它们一个负责管理不重复的集合,一个负责维护键值对映射,底层都依赖一颗高效的红黑树来保证数据的有序性和操作的性能。但你是否曾想…