位置: 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)

  • 恢复指定人微信聊天记录(恢复指定人微信语音聊天记录)

    恢复指定人微信聊天记录(恢复指定人微信语音聊天记录)

  • iqoo5g开关在哪里(iqoo手机5g开关在哪里)

    iqoo5g开关在哪里(iqoo手机5g开关在哪里)

  • 苹果se2什么处理器(苹果14手机处理器)

    苹果se2什么处理器(苹果14手机处理器)

  • 华为手机卡包在哪里(华为手机的卡包在哪里能找到)

    华为手机卡包在哪里(华为手机的卡包在哪里能找到)

  • 一个手机怎么申请两个微信号(一个手机怎么申请抖音小号)

    一个手机怎么申请两个微信号(一个手机怎么申请抖音小号)

  • 快手多少粉丝可以开店(快手多少粉丝可以挂小铃铛)

    快手多少粉丝可以开店(快手多少粉丝可以挂小铃铛)

  • qq朋友坦白局是匿名的吗(qq朋友坦白局的问题)

    qq朋友坦白局是匿名的吗(qq朋友坦白局的问题)

  • 苹果手机外卖电话进不来(苹果手机外卖电话打不进来什么原因)

    苹果手机外卖电话进不来(苹果手机外卖电话打不进来什么原因)

  • 手机多媒体没声音是怎么回事(手机多媒体没声音打电话有声音)

    手机多媒体没声音是怎么回事(手机多媒体没声音打电话有声音)

  • 抖音直播点赞是什么意思(抖音直播点赞是音浪吗)

    抖音直播点赞是什么意思(抖音直播点赞是音浪吗)

  • 允许应用发送常驻通知是什么意思(允许应用发出通知)

    允许应用发送常驻通知是什么意思(允许应用发出通知)

  • 32gu盘可以存多少首歌(32gu盘可以存多少照片)

    32gu盘可以存多少首歌(32gu盘可以存多少照片)

  • 电信的卡能放在其他手机上用吗(电信的卡能放在移动手机上吗)

    电信的卡能放在其他手机上用吗(电信的卡能放在移动手机上吗)

  • 电脑32g和16g内存区别(电脑32g和16g内存不兼容)

    电脑32g和16g内存区别(电脑32g和16g内存不兼容)

  • 为什么迅雷投屏老断开(为什么迅雷投屏没有字幕)

    为什么迅雷投屏老断开(为什么迅雷投屏没有字幕)

  • ledt5和t8的区别(ledt8灯管怎么接线图解)

    ledt5和t8的区别(ledt8灯管怎么接线图解)

  • 快手b类有什么影响(快手b类包括什么)

    快手b类有什么影响(快手b类包括什么)

  • 小米8透明版多少w快充(小米8透明版多少克)

    小米8透明版多少w快充(小米8透明版多少克)

  • 充话费显示不支持此号码什么意思(充话费没有反应)

    充话费显示不支持此号码什么意思(充话费没有反应)

  • 华为手机膜免费换吗(华为手机膜免费贴多久)

    华为手机膜免费换吗(华为手机膜免费贴多久)

  • 微信接不到语音通话和视频是怎么回事(微信接不到语音电话是怎么回事)

    微信接不到语音通话和视频是怎么回事(微信接不到语音电话是怎么回事)

  • gtx和rtx的区别

    gtx和rtx的区别

  • 淘宝助手如何用(淘宝助手如何用微信登录)

    淘宝助手如何用(淘宝助手如何用微信登录)

  • 奥杜邦中心的一只靛蓝彩鹀,美国宾夕法尼亚州 (© Vicki Jauron/Getty Images)(奥杜邦的祈祷经典语录)

    奥杜邦中心的一只靛蓝彩鹀,美国宾夕法尼亚州 (© Vicki Jauron/Getty Images)(奥杜邦的祈祷经典语录)

  • 经销商返点方案范文
  • 企业的筹建期允许有多长?
  • 普票也要盖发票专用章吗
  • 公司购买食品如何入账
  • 预提工资计入哪个科目
  • 建账的主要流程
  • 贷款受托支付可以给股东吗
  • 已交的增值税能计入费用吗
  • 农产品收购发票可以跨区域开吗
  • 企业的技术转让费
  • 流动资产短期借款
  • 委托收款税务认可吗
  • 事业单位结余如何做分录
  • 公司股权折价收入怎么算
  • 企业征地补偿支出需要什么凭据做账?
  • 餐饮店进货要索取哪些单据
  • 税控技术服务费计入什么科目
  • 发票对方作废了,客户还可以认证么
  • 小规模收到专票要做进项税额转出吗
  • 补偿金满一年不满一年半
  • 增值税申报异常比对情况说明怎么写
  • 计提本月银行借款
  • 财政返还额度会计分录
  • 存货损失进项税
  • 材料暂估的会计分录怎么做
  • wordpress相关文章插件
  • 新买的苹果电脑需要注意什么
  • 工业企业汽车发生费用处理
  • 0x0000001e蓝屏代码的含义
  • noads.exe - noads是什么进程 有什么用
  • 2021最好的固态
  • 酒店行业存货周转率多少合适
  • win7系统更改属性内存信息的方法有哪些
  • css搜索框代码怎么写
  • 阿尔卑斯山百度百科
  • 微信手机充值怎么自定义金额
  • 增值税发票可以作废重新开吗
  • 作用域和作用域链的理解
  • thinkphp环境搭建教程
  • 自然人办税服务大厅
  • 企业向慈善机构捐款会计分录
  • 主营业务收入和营业外收入的区别
  • 滴滴打车的发票是什么样子
  • python中字符串与数字相乘的结果
  • 在vue项目如何引入异步组件?
  • js在数组中查找指定元素
  • 公司费用计入什么科目
  • php的do while语句
  • 过路费一定是要公司的车辆吗
  • 什么是指企业的市场营销活动发生影响的各种因素的总和
  • 原材料报废卖掉会计分录
  • 日本发票国内能用吗
  • 无形资产减值准备
  • 上个月结转的流量下个月能用吗
  • 融资租赁的固定资产可以一次性扣除吗
  • 新公司办公室装修费怎么记账
  • 会计中为什么要用黑色笔写
  • 往来账项询证函怎么填写
  • 承租人和共同承租人
  • 银行存款日记账对方科目两个怎么办
  • 低值易耗品最新定义
  • window9为什么没有
  • Win10系统怎么删除管理员权限
  • Windows8.1和Ubuntu14.04双系统卸载Ubuntu的方法
  • winkey.exe - winkey是什么进程
  • 苹果mac 最新系统
  • bootstrap怎么用
  • 激情台球游戏源码大全
  • jqgrid单元格点击事件
  • [置顶]游戏名:chivalry2
  • bootstrap弹出表单
  • python里面有什么
  • python系统框架
  • js canvas绘制图片
  • 企业个税申报系统密码忘记了在哪能找回呢?
  • 甘肃国家税务总局
  • 开票信息不一致怎么回事
  • 如何查看税务登记记号
  • 没有税务备案,不用申报增值税
  • 雅加达购物必买的东西
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设