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

  • oppo手机删除的视频如何恢复(oppo手机删除的照片怎样恢复到手机上)

    oppo手机删除的视频如何恢复(oppo手机删除的照片怎样恢复到手机上)

  • 淘宝登录密码忘记了怎么修改密码(淘宝登录密码忘了怎么改新密码)

    淘宝登录密码忘记了怎么修改密码(淘宝登录密码忘了怎么改新密码)

  • 苹果手机怎么将照片设置镜面翻转(苹果手机怎么将数据传到新手机)

    苹果手机怎么将照片设置镜面翻转(苹果手机怎么将数据传到新手机)

  • vivo怎么开启其他应用画中画(vivo手机怎么开)

    vivo怎么开启其他应用画中画(vivo手机怎么开)

  • 腾讯会议电脑版怎么开启摄像头(腾讯会议电脑版怎么关闭声音)

    腾讯会议电脑版怎么开启摄像头(腾讯会议电脑版怎么关闭声音)

  • 淘宝助理怎么批量发布宝贝(淘宝助理怎么批量删除)

    淘宝助理怎么批量发布宝贝(淘宝助理怎么批量删除)

  • iPhone7修过基带耐用吗(苹果7基带坏了修后手机信息还在嘛)

    iPhone7修过基带耐用吗(苹果7基带坏了修后手机信息还在嘛)

  • 微信怎样申请抖音号(微信怎么申请抖音号呢)

    微信怎样申请抖音号(微信怎么申请抖音号呢)

  • 电脑腾讯会议为什么开启不了视频(电脑腾讯会议为什么打不开)

    电脑腾讯会议为什么开启不了视频(电脑腾讯会议为什么打不开)

  • 华为nova7四个摄像头怎么用(华为nova7四个摄像头分别有什么用)

    华为nova7四个摄像头怎么用(华为nova7四个摄像头分别有什么用)

  • 喜马拉雅账号可以同时好几个人登录吗(喜马拉雅账号可以登两个手机吗)

    喜马拉雅账号可以同时好几个人登录吗(喜马拉雅账号可以登两个手机吗)

  • 微师电脑版为什么打不开(微师电脑版为什么提示)

    微师电脑版为什么打不开(微师电脑版为什么提示)

  • 美团上订民宿不能退吗(美团订民宿不让住了)

    美团上订民宿不能退吗(美团订民宿不让住了)

  • 双重认证有什么坏处(双重认证有什么用)

    双重认证有什么坏处(双重认证有什么用)

  • 手机转换头怎样使用(手机转换头怎样下载歌曲的视频)

    手机转换头怎样使用(手机转换头怎样下载歌曲的视频)

  • vivo手机红外线在哪(vivo手机红外线遥控器怎么用)

    vivo手机红外线在哪(vivo手机红外线遥控器怎么用)

  • 手机qq资料卡皮肤怎么换(手机qq资料卡皮肤有哪些免费的)

    手机qq资料卡皮肤怎么换(手机qq资料卡皮肤有哪些免费的)

  • 韩剧tv的电影在哪里看(韩剧tv的电影在线观看)

    韩剧tv的电影在哪里看(韩剧tv的电影在线观看)

  • 13.1.2系统更新了什么(更新13.3系统)

    13.1.2系统更新了什么(更新13.3系统)

  • 荣耀手环3怎么开机(荣耀手环3怎么连接小米手机)

    荣耀手环3怎么开机(荣耀手环3怎么连接小米手机)

  • 手机淘宝怎么解除禁言(手机淘宝怎么解绑实名认证)

    手机淘宝怎么解除禁言(手机淘宝怎么解绑实名认证)

  • 微信申诉没有好友辅助验证怎么办(微信申诉没有好友辅助)

    微信申诉没有好友辅助验证怎么办(微信申诉没有好友辅助)

  • PRISMSVR.EXE - PRISMSVR是什么进程 有什么用

    PRISMSVR.EXE - PRISMSVR是什么进程 有什么用

  • Cursor:GPT-4 驱动的强大代码编辑器(gpib-usb驱动)

    Cursor:GPT-4 驱动的强大代码编辑器(gpib-usb驱动)

  • 解读vant的Uploader上传问题(vant ui)

    解读vant的Uploader上传问题(vant ui)

  • 不确认递延所得税的特殊情况
  • 什么是小规模纳税人税率
  • 银行共管账户现在可以开设吗
  • 购买理财产品计入交易性金融资产
  • 采购材料入库会计分录怎么写的
  • 应收账款平均余额公式
  • 同一家单位发票不一样
  • 工资及工资性支出
  • 财务合理化建议例子
  • 劳务与临时工的区别
  • 施工企业材料采购
  • 旧的固定资产销售怎么算税
  • 收到销售折让的红字怎么做账
  • 产权转移书据印花税计入什么科目
  • 募集资金怎么算
  • 商业折扣和现金折扣的区别
  • 消费型增值税的特点的是( )
  • 工会经费税收
  • 发票盖章盖成了财务章有影响吗
  • 以前年度的库存商品出现负数今年如何入账
  • 电脑中毒蓝屏了怎么办修复
  • 商业一般纳税人税率多少
  • 简易征收增值税怎么算
  • windows10轻松使用是什么
  • 上一年度会计科目错误怎么更正
  • 公司收到财政拨付办公经费
  • 存货的毁损通过什么科目核算
  • 支付劳务公司的劳务费计入应付账款还是其他应付款
  • php框架ci
  • php获取目录所有文件
  • php 抓取别的网站的内容
  • thinkphp框架怎么用
  • 用友财务软件使用视频教程
  • python的opencv
  • pytorch教程
  • php打包phar
  • break能结束一个函数的调用
  • python进行统计分析
  • 对供应商的罚款通知怎么写
  • 个人所得税生产经营所得B表
  • 客户对账单应该哪个部门做
  • 所得税汇算清缴调整项目
  • arraylist源码分析1.8
  • 应收账款属于供应商还是客户
  • 短期借款利息是多少
  • 以权益结算的股份
  • MySQL 5.7 create VIEW or FUNCTION or PROCEDURE
  • 金税四期对企业纳税管理影响分析
  • 应收业务处理流程
  • 会计销售返利处理流程
  • 核定征收怎么收
  • 员工出差报销补贴政策
  • 进项税可以跨年结转吗
  • 递延所得税资产和负债怎么理解
  • 预计负债 负债 区别
  • 开票加的税点走什么费用
  • 成本会计工作主要内容
  • CentOS7下MySQL5.7安装配置方法图文教程(YUM)
  • 64位CentOs7源码安装mysql-5.6.35过程分享
  • 微软6月24号
  • freebsd 编译
  • 在windows xp中说法正确的是
  • win10系统更新后无法开机
  • google chrome windows 10
  • removed.exe - removed是什么进程 有什么用
  • linux0.11文件系统
  • win7激活后grub
  • 2016年首个国家安全教育日
  • cocos2dx官方教程
  • unity平移场景视图怎样操作?
  • unity3d游戏引擎支持几种平台发布?
  • jquery排序上升和排序下降
  • jquery删除节点的元素
  • js str.match
  • Adding iAd in your App from Unity3d
  • bootstrapped 5%
  • js动态调用方法
  • 广州税务局前局长是谁
  • 百旺税控盘怎么清卡
  • 电子税务局网页版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设