位置: IT常识 - 正文

VUE3 数据的侦听(vue3当中如何监听新增的属性)

编辑:rootadmin
VUE3 数据的侦听

推荐整理分享VUE3 数据的侦听(vue3当中如何监听新增的属性),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3监听数组,vue3监听,vue监听数据变化的事件怎么写,vue侦听属性,vue数据监听原理,vue3监听数组,vue数据监听原理,vue数据监听原理,内容如对您有帮助,希望把文章链接给更多的朋友!

侦听数据变化也是组件里的一项重要工作,比如侦听路由变化、侦听参数变化等等。

Vue 3 在保留原来的 watch 功能之外,还新增了一个 watchEffect 帮助更简单的进行侦听。

watch 在 Vue 3 ,新版的 watch 和 Vue 2 的旧版写法对比,在使用方式上变化非常大! 回顾 Vue 2 在 Vue 2 是这样用的,和 data 、 methods 都在同级配置:

export default { data() { return { // ... } }, // 注意这里,放在 `data` 、 `methods` 同个级别 watch: { // ... }, methods: { // ... },}VUE3 数据的侦听(vue3当中如何监听新增的属性)

并且类型繁多,选项式 API 的类型如下:

watch: { [key: string]: string | Function | Object | Array}

联合类型过多,意味着用法复杂,下面是个很好的例子,虽然出自 官网 的用法介绍,但过于繁多的用法也反映出来对初学者不太友好,初次接触可能会觉得一头雾水:

export default { data() { return { a: 1, b: 2, c: { d: 4, }, e: 5, f: 6, } }, watch: { // 侦听顶级 Property a(val, oldVal) { console.log(`new: ${val}, old: ${oldVal}`) }, // 字符串方法名 b: 'someMethod', // 该回调会在任何被侦听的对象的 Property 改变时被调用,不论其被嵌套多深 c: { handler(val, oldVal) { console.log('c changed') }, deep: true, }, // 侦听单个嵌套 Property 'c.d': function (val, oldVal) { // do something }, // 该回调将会在侦听开始之后被立即调用 e: { handler(val, oldVal) { console.log('e changed') }, immediate: true, }, // 可以传入回调数组,它们会被逐一调用 f: [ 'handle1', function handle2(val, oldVal) { console.log('handle2 triggered') }, { handler: function handle3(val, oldVal) { console.log('handle3 triggered') }, /* ... */ }, ], }, methods: { someMethod() { console.log('b changed') }, handle1() { console.log('handle 1 triggered') }, },}

当然肯定也会有开发者会觉得这样选择多是个好事,选择适合自己的就好,但笔者还是认为这种写法对于初学者来说不是那么友好,有些过于复杂化,如果一个用法可以适应各种各样的场景,岂不是更妙?

TIP另外需要注意的是,不能使用箭头函数来定义 Watcher 函数 (例如 searchQuery: newValue => this.updateAutocomplete(newValue) )。因为箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向组件实例, this.updateAutocomplete 将是 undefined 。

Vue 2 也可以通过 this.$watch() 这个 API 的用法来实现对某个数据的侦听,它接受三个参数: source 、 callback 和 options 。

export default { data() { return { a: 1, } }, // 生命周期钩子 mounted() { this.$watch('a', (newVal, oldVal) => { // ... }) },}

由于 this.$watch 的用法和 Vue 3 比较接近,所以这里不做过多的回顾,请直接看 了解 Vue 3 部分。

了解 Vue 3 在 Vue 3 的组合式 API 写法, watch 是一个可以接受 3 个参数的函数(保留了 Vue 2 的 this.$watch 这种用法),在使用层面上简单了很多。

import { watch } from 'vue'// 一个用法走天下watch( source, // 必传,要侦听的数据源 callback // 必传,侦听到变化后要执行的回调函数 // options // 可选,一些侦听选项)

下面的内容都基于 Vue 3 的组合式 API 用法展开讲解。 API 的 TS 类型 在了解用法之前,先对它的 TS 类型

本文链接地址:https://www.jiuchutong.com/zhishi/298857.html 转载请保留说明!

上一篇:【前端修炼之路】第一话 · 初识前端领域(前端高手进阶)

下一篇:css深度选择器deep(css选择器nth)

  • 抖音怎样加微信好友(抖音怎样加微信好友的抖音号)

    抖音怎样加微信好友(抖音怎样加微信好友的抖音号)

  • excel如何取消小数自动进位(excel如何取消小数点后的零)

    excel如何取消小数自动进位(excel如何取消小数点后的零)

  • 微信折叠置顶聊天怎么打开(微信折叠置顶聊天最多几个)

    微信折叠置顶聊天怎么打开(微信折叠置顶聊天最多几个)

  • 小米11支持NFC吗(小米11支持nfc3.0)

    小米11支持NFC吗(小米11支持nfc3.0)

  • 华为lraal00是哪个型号的手机(华为型号lya-al00是什么手机)

    华为lraal00是哪个型号的手机(华为型号lya-al00是什么手机)

  • 怎么通过支付宝查到对方的手机号(怎么通过支付宝转账查到对方手机号)

    怎么通过支付宝查到对方的手机号(怎么通过支付宝转账查到对方手机号)

  • switch更新无法连接服务器(switch更新无法连接互联网)

    switch更新无法连接服务器(switch更新无法连接互联网)

  • 拼多多号被黑了是什么原因(拼多多黑号还能恢复吗)

    拼多多号被黑了是什么原因(拼多多黑号还能恢复吗)

  • 苹果xs开热点安卓手机连不上(苹果xs个人热点)

    苹果xs开热点安卓手机连不上(苹果xs个人热点)

  • 文档查找关键字怎么在文档中找(文档查找关键字在哪里)

    文档查找关键字怎么在文档中找(文档查找关键字在哪里)

  • 苹果x来消息灯光闪怎么设置(苹果x消息提醒闪光灯开了不会闪怎么设置)

    苹果x来消息灯光闪怎么设置(苹果x消息提醒闪光灯开了不会闪怎么设置)

  • 苹果关机键没反应(苹果关机键没反应怎么截屏)

    苹果关机键没反应(苹果关机键没反应怎么截屏)

  • 商务通怎么进入(商务通怎么用)

    商务通怎么进入(商务通怎么用)

  • 手机固件什么意思(手机固件有什么用)

    手机固件什么意思(手机固件有什么用)

  • icloud满了怎么删除(icloud满了怎么清理)

    icloud满了怎么删除(icloud满了怎么清理)

  • 荣耀v30支持红外吗(荣耀v30支持红外遥控吗)

    荣耀v30支持红外吗(荣耀v30支持红外遥控吗)

  • 淘气值不足怎么助力(淘气值不足怎么回事)

    淘气值不足怎么助力(淘气值不足怎么回事)

  • 手机服务器怎么设置(手机服务器怎么连接)

    手机服务器怎么设置(手机服务器怎么连接)

  • 飞机上开飞行模式可以吗(飞机上开飞行模式可以用蓝牙耳机吗)

    飞机上开飞行模式可以吗(飞机上开飞行模式可以用蓝牙耳机吗)

  • 苹果手机拉黑后打电话能看到吗(苹果手机拉黑后能看到对方来电吗)

    苹果手机拉黑后打电话能看到吗(苹果手机拉黑后能看到对方来电吗)

  • 华为nova2snfc感应区在哪(华为nova2nfc感应区在哪)

    华为nova2snfc感应区在哪(华为nova2nfc感应区在哪)

  • Win11如何清空剪贴板数据 Win11清空剪贴板数据的方法(win10怎么清理剪切板)

    Win11如何清空剪贴板数据 Win11清空剪贴板数据的方法(win10怎么清理剪切板)

  • 关于Vue3警告:Failed to resolve component:XXX的解决办法(vuecli报错)

    关于Vue3警告:Failed to resolve component:XXX的解决办法(vuecli报错)

  • Python一点通: ‘python -m pip install’ 和 ‘pip install‘ 什么区别?(python一点都不简单)

    Python一点通: ‘python -m pip install’ 和 ‘pip install‘ 什么区别?(python一点都不简单)

  • 织梦直接获取上一篇下一篇的URL网址链接方法(织梦使用手册)

    织梦直接获取上一篇下一篇的URL网址链接方法(织梦使用手册)

  • 分公司亏损总公司可以弥补吗
  • 运输公司税率和税种
  • 核定征收三种方式
  • 劳务什么情况下会多扣税
  • 个税申报了还要扣钱吗
  • 国有企业业务招待费管理办法
  • 创业就业带动补贴
  • 收到客户用房抵货款怎么办
  • 外购的半成品属于原材料吗
  • 认缴制下实收资本如何缴纳印花税
  • 产品成本的计算公式
  • 销售废旧物资账务处理
  • 未分配利润怎么处理
  • 其他应付款坏账怎么处理
  • 简易征收销项税额咋做账
  • 工程施工企业人力资源管理
  • 冲减以前年度所得税费用
  • 领用库存商品的消费税
  • 怎么使用Windows安装器安装Windows10
  • 经营费用包括哪些科目明细
  • win10如何查看显卡版本
  • 股东分配利润的程序
  • win10右键显示设置打不开怎么办
  • 清理c盘清理
  • macos big sur卡在
  • php读取txt内容
  • PHP - EasyUI DataGrid 资料取的方式介绍
  • PHP:mcrypt_enc_self_test()的用法_Mcrypt函数
  • 房地产企业购地印花税如何入账
  • framework启动
  • 房地产企业增值税扣除土地成本
  • vue查看图片组件
  • 新版python
  • 开源代码网站github
  • 前端大佬都有谁
  • 目标检测yolo算法
  • bad block bitmap checksum
  • 宝塔运行go
  • 审核出错问题在谁
  • 包装物为什么是无菌的
  • 办理银行承兑汇票保证金比例
  • 织梦怎么套模板
  • 织梦收费5800的解决方法
  • 个人福利要交税吗
  • 购买加油卡需要什么证件
  • 筹建期间发生的所有费用
  • 简易征收的进项税可以抵扣吗
  • 给业务员的佣金怎么做账
  • 银行承兑汇票向银行申请贴现会计分录
  • 多收发票会计分录
  • 未开票收入账上税率按多少
  • 退资本金现金流量表走哪一项
  • 企业整个月没有缴纳社保
  • 投资管理工作内容
  • 英文版的windows
  • 列举linux常用的版本
  • bios如何进去
  • linux系统
  • win7的库是什么
  • linux集群的作用和意义
  • windows8装 .NET 3.5 时出现0x800F081F错误解决方法
  • 盗版xp黑屏的解决办法
  • nicconfigsvc.exe - nicconfigsvc是什么进程 有什么用
  • win7鼠标右键菜单不显示
  • linux批量ping
  • perl 删除文件
  • cocos creator 资源加密
  • cocos2dx4.0教程
  • python如何用turtle
  • bootstrap基础
  • shell自定义命令
  • unity获取鼠标点击的位置
  • 骨骼动画spine
  • Android自定义动画
  • python查找列表中的元素
  • 修改季度申报表
  • 国家税务总局南京市秦淮区税务局纳税服务中心
  • 中山大学税务硕士
  • 地税局社保宣传标语
  • 2023年车辆购置税优惠政策有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设