vue的监听属性watch的详解

文章目录

  • 1. 监听属性 watch
  • 2. 常规用法
  • 3. 监听对象和route变化
  • 4. 使用场景

1. 监听属性 watch

watch 是一个对象,键是需要观察的表达式,用于观察 Vue 实例上的一个表达式或者一个函数计算结果的变化。回调函数的参数是新值和旧值。值也可以是方法名,或者包含选项的对象。Vue 实例将会在实例化时调用 $watch(),遍历 watch 对象的每一个 property。

2. 常规用法

watch 监听有两个形参,第一个是新值,第二个是旧值。如下例子:使用 watch 监听了 total 的值,当 total 的值改变时,控制台会打印出旧值和新值。

<template><div class="home_box"><h1>{{ total }}</h1><button @click="handleAddTotal">增加</button></div>
</template><script>
export default {name: 'Home',watch: {total(newValue, oldValue) {console.log('旧值:', oldValue)console.log('新值:', newValue)}},data() {return {total: 0}},methods: {handleAddTotal() {this.total++}}
}
</script>

3. 监听对象和route变化

watch监听的目标,可以是基本类型,也可以是对象,也可以是对象里的一个值。而监听目标的属性,可以是一个函数,也可以是一个包含handler(回调函数),immediate(是否初始化后立即执行一次)和deep(是否开启深度监听)的对象。

<script>
export default {name: 'Home',watch: {// 监听基本类型aaa(newValue, oldValue) {console.log('旧值:', oldValue)console.log('新值:', newValue)},// 监听基本类型,并且回调函数写在methods里,且初始化加载立即执行一次bbb: {handler: 'handleBBB',immediate: true},// 监听对象类型,需要开启深度监听ccc: {handler: (newValue, oldValue) {console.log('旧值:', oldValue)console.log('新值:', newValue)},deep: true},// 监听对象里的某个值'ddd.d2.d21': {handler: (newValue, oldValue) {console.log('旧值:', oldValue)console.log('新值:', newValue)}},// 监听route变化'$route': {handler: (newValue, oldValue) {console.log('旧值:', oldValue)console.log('新值:', newValue)}}},data() {return {aaa: 0,bbb: 0,ccc: {c1: 0,c2: 0},ddd: {d1: 0,d2: {d21: 0}}}},methods: {handleBBB() {this.bbb++}}
}
</script>

4. 使用场景

watch监听属性使用场景很多。比如:

  1. 即时表单验证
  2. 搜索
  3. 监听数据变化,做出相应改变

如下例子,监听 keyword 的值,实时打印出来。

<template><div class="home_box"><input type="text" v-model="keyword"></div>
</template><script>
export default {name: 'Home',watch: {keyword: {handler: 'handleKeywordChange'}},data() {return {keyword: '',}},methods: {handleKeywordChange(newValue, oldValue) {console.log(newValue, oldValue)}}
}
</script>

本次分享就到这儿啦,我是鹏多多,如果您看了觉得有帮助,欢迎评论,关注,点赞,转发,我们下次见~

往期文章

  • css使用aspect-ratio制作4:3和9:16和1:1等等比例布局
  • Web前端页面开发阿拉伯语种适配指南
  • flutter-使用extended_image操作图片的加载和状态处理以及缓存和下载
  • flutter-制作可缩放底部弹出抽屉评论区效果
  • flutter-实现Tabs吸顶的PageView效果
  • Vue2全家桶+Element搭建的PC端在线音乐网站
  • 助你上手Vue3全家桶之Vue3教程
  • 超详细!Vue的九种通信方式
  • 超详细!Vuex手把手教程
  • 使用nvm管理node.js版本以及更换npm淘宝镜像源
  • vue中利用.env文件存储全局环境变量,以及配置vue启动和打包命令

个人主页

  • CSDN
  • GitHub
  • 掘金

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在 Ubuntu 24.04 服务器上安装 Apache Solr

Apache Solr 是一个免费、开源的搜索平台&#xff0c;广泛应用于实时索引。其强大的可扩展性和容错能力使其在高流量互联网场景下表现优异。 Solr 基于 Java 开发&#xff0c;提供了分布式索引、复制、负载均衡及自动故障转移和恢复等功能。 本教程将指导您如何在 Ubuntu 24.…

Linux内核中TCP三次握手的实现机制详解

TCP三次握手是建立可靠网络连接的核心过程,其在内核中的实现涉及复杂的协议栈协作。本文将深入分析Linux内核中三次握手的实现机制,涵盖客户端与服务端的分工、关键函数调用、协议号验证及数据包处理流程。 一、三次握手的整体流程 三次握手分为三个阶段,客户端与服务端通过…

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…

优化 Spring Boot API 性能:利用 GZIP 压缩处理大型有效载荷

引言 在构建需要处理和传输大量数据的API服务时&#xff0c;响应时间是一个关键的性能指标。一个常见的场景是&#xff0c;即使后端逻辑和数据库查询已得到充分优化&#xff0c;当API端点返回大型数据集&#xff08;例如&#xff0c;数千条记录的列表&#xff09;时&#xff0…

【WPF】WPF 项目实战:构建一个可增删、排序的光源类型管理界面(含源码)

&#x1f4a1;WPF 项目实战&#xff1a;构建一个可增删、排序的光源类型管理界面&#xff08;含源码&#xff09; 在实际的图像处理项目中&#xff0c;我们经常需要对“光源类型”进行筛选或管理。今天我们来一步步构建一个实用的 WPF 界面&#xff0c;实现以下功能&#xff1…

C++23 已弃用特性

文章目录 1. std::aligned_storage 与 std::aligned_union1.1 特性介绍1.2 被弃用的原因1.3 替代方案 2. std::numeric_limits::has_denorm2.1 特性介绍2.2 被弃用的原因 3. 总结 C23 已弃用特性包括&#xff1a;std::aligned_storage、std::aligned_union 与 std::numeric_lim…

十三、【核心功能篇】测试计划管理:组织和编排测试用例

【核心功能篇】测试计划管理:组织和编排测试用例 前言准备工作第一部分:后端实现 (Django)1. 定义 `TestPlan` 模型2. 生成并应用数据库迁移3. 创建 `TestPlanSerializer`4. 创建 `TestPlanViewSet`5. 注册路由6. 注册到 Django Admin第二部分:前端实现 (Vue3)1. 创建 `Test…

STM32最小CLion开发环境

文章目录 1 必须文件2 工具链3 CLion 全局配置4 CLion 新项目配置ST-Link 调试 5 点亮 LED6 分析 elf 文件7 项目模板 1 必须文件 ST 提供的头文件支持 MDK-ARM, GCC, IAR 3种编译器, 下面采用 GCC 编译器 Arm GNU Toolchain Downloads – Arm Developer 或 安装包版 调试器服…

核函数:解锁支持向量机的强大能力

在机器学习的世界中&#xff0c;支持向量机&#xff08;SVM&#xff09;是一种强大的分类算法&#xff0c;而核函数则是其背后的“魔法”&#xff0c;让 SVM 能够处理复杂的非线性问题。今天&#xff0c;我们就来深入探讨核函数的奥秘&#xff0c;看看它们是如何帮助 SVM 在高维…

【Go-6】数据结构与集合

6. 数据结构与集合 数据结构是编程中用于组织和存储数据的方式&#xff0c;直接影响程序的效率和性能。Go语言提供了多种内置的数据结构&#xff0c;如数组、切片、Map和结构体&#xff0c;支持不同类型的数据管理和操作。本章将详细介绍Go语言中的主要数据结构与集合&#xf…

3. 简述node.js特性与底层原理

&#x1f63a;&#x1f63a;&#x1f63a; 一、Node.js 底层原理&#xff08;简化版&#xff09; Node.js 是一个 基于 Chrome V8 引擎构建的 JavaScript 运行时&#xff0c;底层核心由几部分组成&#xff1a; 组成部分简要说明 1.V8 引擎 将 JS 编译成机器码执行&#xff0…

Web开发主流前后端框架总结

&#x1f5a5; 一、前端主流框架 前端框架的核心是提升用户界面开发效率&#xff0c;实现高交互性应用。当前三大主流框架各有侧重&#xff1a; React (Meta/Facebook) 核心特点&#xff1a;采用组件化架构与虚拟DOM技术&#xff08;减少真实DOM操作&#xff0c;优化渲染性能&…

大语言模型备案与深度合成算法备案的区别与联系

“什么情况下做算法备案&#xff1f;” “什么情况下做大模型备案呢&#xff1f;” 进行大模型备案的企业必然要进行算法备案&#xff0c;而进行算法备案的企业则需根据其提供的服务性质判断是否需要进行大模型备案。 算法备案与大模型备案已经是个老生常谈的话题了&#xf…

微软PowerBI考试 PL300-Power BI 入门

Power BI 入门 上篇更新了微软PowerBI考试 PL-300学习指南&#xff0c;今天分享PowerBI入门学习内容。 简介 Microsoft Power BI 是一个完整的报表解决方案&#xff0c;通过开发工具和联机平台提供数据准备、数据可视化、分发和管理。 Power BI 可以从使用单个数据源的简单…

【Hive入门】

之前实习写的笔记&#xff0c;上传留个备份。 1. 使用docker-compose快速搭建Hive集群 使用docker快速配置Hive环境 拉取镜像 2. Hive数据类型 隐式转换&#xff1a;窄的可以向宽的转换显式转换&#xff1a;cast 3. Hive读写文件 SerDe:序列化&#xff08;对象转为字节码…

设计模式——简单工厂模式(创建型)

摘要 本文主要介绍了简单工厂模式&#xff0c;包括其定义、结构、实现方式、适用场景、实战示例以及思考。简单工厂模式是一种创建型设计模式&#xff0c;通过工厂类根据参数决定创建哪一种产品类的实例&#xff0c;封装了对象创建的细节&#xff0c;使客户端无需关心具体类的…

抽象工厂模式与策略模式结合使用小案例

目录 1.前言1.示例说明1.1定义通用接口1.2 定义抽象工厂1.3 支付宝实现1.4 微信实现1.5 客户端使用代码&#xff08;组合使用&#xff09;1.6 示例结果输出1.7 总结 1.前言 上一篇章就通过简单的案例来了解抽象工厂模式和策略模式的使用&#xff0c;现在就用个支付场景的小案例…

通过WiFi无线连接小米手机摄像头到电脑的方法

通过WiFi无线连接小米手机摄像头到电脑的方法 以下是基于Scrcpy和DroidCam两种工具的无线连接方案&#xff0c;需提前完成开发者模式与USB调试的开启&#xff08;参考原教程步骤&#xff09;&#xff1a; 方法一&#xff1a;Scrcpy无线投屏&#xff08;无需手机端安装&#xf…

2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践

项目背景&#xff1a;近年来&#xff0c;云计算、AI人工智能、大数据等信息技术的不断发展、各行各业的信息电子化的步伐不断加快、信息化的水平不断提高&#xff0c;网络安全的风险不断累积&#xff0c;金融证券行业面临着越来越多的威胁挑战。特别是近年以来&#xff0c;开源…

Java高级 | 【实验二】Springboot 控制器类+相关注解知识

隶属文章&#xff1a; Java高级 | &#xff08;二十二&#xff09;Java常用类库-CSDN博客 系列文章&#xff1a; Java高级 | 【实验一】Spring Boot安装及测试 最新-CSDN博客 目录 一、MVC模式 二、SpringBoot基础——控制层Controller详解 &#xff08;一&#xff09;主要工…