Vue3 中选项式下的侦听器

news2024/11/16 11:53:25

目录

  • 前言:
  • watch 侦听的分类:
    • 函数式的侦听器
    • 对象式侦听器
  • 创建侦听器
  • 停止侦听器
  • 总结:

前言:

今天小编给大家讲解一下,Vue3 中选项式下的侦听器。

我正在参加 2022年「博客之星」年度总评选,请大家帮我支持一下,给我一个五星。
|
点击前往我的评选页面:
|
在这里插入图片描述
大家只要按图给我五星即可,谢谢大家的帮助。


watch 侦听的分类:


函数式的侦听器

其中函数名就是要侦听的数据源,函数中的参数,为新数据源的新、旧值;

watch: {
  // 函数式侦听器
  age(newVal, oldVal) {
    console.log("newVal:" + newVal);
    console.log("oldVal:" + oldVal);
  },
},

对象式侦听器

在 watch 选项中声明的对象即为对象侦听器

  1. 对象名就是要侦听的数据源。
  2. 对象中的 handler 方法为数据源发生改变时,执行的代码块,其中参数一为新值,参数二为旧值
  3. deep:
    1. watch 默认是浅层,被侦听的属性,仅仅在被赋新值时,才会触发回调,嵌套的属性发生变化时,不会触发;
    2. 如果想侦听所有嵌套的变更,你需要深层侦听器:deep:true 选项;
    3. 深度侦听需要遍历被侦听对象中所有嵌套的属性,按需使用,开销很大。
  4. immediate:立即执行
    1. watch 默认是懒执行的,仅当数据源变化时,才会执行。但是在很大业务中,我们需要在创建侦听器,立即执行一遍回调,可采用 immediate:true 选项;
    2. 按需使用;
  5. flush:获取组件更新之后的 DOM
    1. 默认情况下,创建的侦听器回调,都会在 Vue 组件更新之前被调用,这意味着在回调中访问的 DOM 将是更新之前的状态;
    2. 如果想在侦听器回调中能访问被更新之后的 DOM,你需要设置 flush:‘post’

watch: {
  // 对象式侦听器
  "emp.name": {
    // 如果 epm.name 发生改变,将执行 handler 代码片段
    handler(newVal, oldVal) {
      console.log("newVal:" + newVal);
      console.log("oldVal:" + oldVal);
      // 获取 DOM
      console.log(document.getElementById("main").innerHTML);
    },
    // deep:深度监听
    // deep: true,
    flush: "post",
  },
},

创建侦听器

在指定的位置,创建侦听器
语法:this.$watch(data,method,object)

  1. data:侦听的数据源,类型为 String
  2. method:当数据源发生改变时,执行的回调函数(新值,旧值)
  3. object:配置,类型为对象(按需使用)

停止侦听器

需要自行停止侦听器时,可以调用 $watch() 返回的函数

mounted() {
  // 需要自行停止侦听器时,可以调用 $watch() 返回的函数
  this.stopWatch = this.$watch(
    "emp",
    (newVal, oldVal) => {
      console.log(newVal);
      console.log(oldVal);
    },
    { deep: true, flush: "post" }
  );
  setTimeout(() => {
    stopWatch();
  }, 3000);
},

总结:

最后还请大家帮我点击一下,谢谢大家的帮助

我正在参加 2022年「博客之星」年度总评选,请大家帮我支持一下,给我一个五星。
|
点击前往我的评选页面:
|
在这里插入图片描述
大家只要按图给我五星即可,谢谢大家的帮助。


以上就是 Vue3 中选项式下的侦听器,不懂得也可以在评论区里问我或私聊我询问,以后会持续发布一些新的功能,敬请关注。
我的其他文章:https://blog.csdn.net/weixin_62897746?type=blog

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

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

相关文章

【服务器数据恢复】XFS文件系统分区丢失怎么恢复数据?

服务器数据恢复环境: 磁盘柜RAID卡搭建riad5磁盘阵列; Linux操作系统; 总共一个LUN,划分两个分区;:sdc1分区通过LVM扩容的方式加入到了root_lv中,sdc2分区格式化为XFS文件系统。 服务器故障: 用户为服务器…

本科生学深度学习一轻松搭建强化学习环境,gym的安装

OpenAI Gym 是一个工具包,提供了广泛的模拟环境,也是强化学习的环境,因为想学强化学习,所以需要搭建一个环境,之前一直在代码层面,还是得能看到,比较直观 今天看下怎么安装这个环境 1、官方网站…

【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)

背景 本文主要讲述的是如何实现动态切换数据源,数据源信息是存储在数据库表里,与在配置文件中写好数据库信息然后用DS("XX")注解不同。 目录 前言 一、准备工作 1.依赖 2.数据库表(脚本) 3.配置文件 4.自定义注解C…

【MySQL基础教程】约束的介绍与使用

前言 本文为 【MySQL基础教程】约束 相关知识,下边将对约束概述,约束演示,外键约束(包括:外键约束介绍、外键约束语法)等内容进行详尽介绍~ 📌博主主页:小新要变强 的主页 &#x1…

只懂黑盒测试也能学会的代码覆盖率及精准化测试

测试覆盖率是对测试完成程度的度量。它通常依据某种覆盖准则来对测试用例执行情况进行衡量,以判断测试执行得是否充分 。 ——出自《 计算机科学技术名词 》第三版 今天文章中我们给大家介绍覆盖率统计及覆盖率分析。在10月13日20:00,资深测…

Vue_cli中config文件配置详细注解

我在scr同级目录下创建了config文件夹,里边包含三个文件 它们3个有引用关系 dev引用prod prod.env.js文件 /* * process.argv.splice(2)[0]返回的是node.js的绝对路径 * /usr/local/bin/node */ let HOST process.argv.splice(2)[0] || prod module.exports {NO…

项目实战之旅游网(十)前台用户注册

目录 一.网站首页 二.编写注册界面 三.生成验证码 四.注册流程 五.编写注册方法 六.发送邮件配置 一.网站首页 static/frontdesk下存放前台静态资源,而templates/frontdesk是前台页面 二.编写注册界面 在上个界面点击注册就可以跳转到注册界面 在这里遇到一…

2022 年上海市大学生程序设计竞赛 M. My University Is Better Than Yours

大家总喜欢搞些什么排行榜。有一说一,排行榜通常不重要,除非——比如你老板要你做一下年终总 结。 为了实现建设世界一流大学和建设世界一流学科的目标,不少大学都用各种方式提升排名:发表论文、 申请基金、提升多样性. . . 不过…

Linux操作系统实验4——内存映射

实验要求: 1.在源码中查看file_operations和vm_operations_struct结构定义及其操作对象的方法,重点查看mmap方法fault方法的参选类型。 2.设备模块代码的编写和调试,重新编写file_operations结构中的mmap方法,和vm_operations_str…

美团一面:能不能通俗的解释下为什么要有意向锁这个东西?

面试真题,用通俗的例子解释清楚 MySQL 为什么有了表锁和行锁之后,还要引入意向锁 众所周知,InnoDB 中既有读锁也有写锁,也称为共享锁和排他锁,这两种锁既可以加在整张表上,也可以加在行上。 MySQL 自身就提…

【Apifox】设置apiFox自动获取token

文章目录问题描述解决方案注意事项参考文章问题描述 接口测试时,每次都需要手动登录获取token,先登录系统,从浏览器中复制token,再到apifox的接口上把token帖上去,然后才能去测试具体的接口;更麻烦的是&am…

【实时数仓】热度关键词接口、项目整体部署流程

文章目录一 热度关键词接口1 Sugar配置(1)图表配置(2)接口地址(3)数据格式(4)执行SQL2 数据接口实现(1)创建关键词统计实体类(2)Mappe…

小黑hbase终于勉强跑到了自己的m1 Macbook上啦,虽然终端用不了,但是能从happybase访问的日常积累:happybase简单使用

1.happybase连接 # 连接操作 import happybase# 建立连接 con happybase.Connection(localhost, 9090) con.open() # 输出所有表名称 print(con.tables()) # 关闭传输 con.close() con.open()2.创建表格 # 创建表格 con happybase.Connection(localhost, 9090) # 默认9090…

Android 图像混合技术

Android 图像混合技术 色彩知识 色彩 光学三原色 光学三原色由:红、绿、蓝组成。 色值分别是: 红(red ):#FF0000 RGB(255,0,0)绿(green)&am…

第十九讲:神州路由器基础知识

路由器简介路由器(Router)是连接Internet中多个网络或网段的网络设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读”懂对方的数据,实现不同网络或网段的互联互通。此外,它会根据…

数据平台建设指南(上)

前言 年底了,整理了下过去做的一些项目,希望能够给大数据行业的同学提供些大数据平台建设的思路。内容大致分五部分:数据采集,数据存储、数据计算、基础平台以及数据治理篇。由于涉及到的内容较多,打算分成两篇文章&am…

PHY驱动注册部分

SOC可以对PHY 进行配置或者读取PHY 相关状态,这个就需要 PHY 内部寄存器去实现了。PHY 芯片寄存器地址空间为 5位(支持访问32个寄存器).IEEE 定义了0~15这 16个寄存器的功能。而 16~31这16 个寄存器由厂商自行实现。 就是说不管你用的哪个厂家的 PHY 芯…

SAP ABAP——SAP简介(三)【S/4 HANA开发环境】

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

linux常用命令(三)-目录操作

目录创建 - mkdir 我们可以使用mkdir(make directory)来创建目录。 示例 目录删除 - rm 可以使用rm(remove)来删除一个目录 语法 rm [-irf] name ...i:删除前逐一询问确认r:将目录及以下之档案亦逐一删…

转转AB平台的设计与实现

导读 在数据驱动时代,不管是在产品功能迭代还是策略决策时都需要数据的支撑。那么,当我们准备上线一个新功能或者策略时,如何评估新老版本优劣,即数据的可量化就成了问题。这个时候就需要引入 A/B Test 了。 一、A/B Test 是什么…