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

  • 淘宝禁止拼多多绑定(淘宝不允许使用拼多多运单号怎么解决)

    淘宝禁止拼多多绑定(淘宝不允许使用拼多多运单号怎么解决)

  • 多媒体课件制作工具可以分为哪四类(多媒体课件制作实训总结)

    多媒体课件制作工具可以分为哪四类(多媒体课件制作实训总结)

  • 天猫换货后能再退货吗(天猫换货后能再退货怎么操作)

    天猫换货后能再退货吗(天猫换货后能再退货怎么操作)

  • 路由器上光纤显示红色是什么意思(路由器上光纤显示红色怎么办)

    路由器上光纤显示红色是什么意思(路由器上光纤显示红色怎么办)

  • 微视怎么搜不到用户名(微视为什么搜不到自己)

    微视怎么搜不到用户名(微视为什么搜不到自己)

  • 京东会员免运费吗(京东会员免运费只能在京东自营么)

    京东会员免运费吗(京东会员免运费只能在京东自营么)

  • 抖音有没有电脑版(抖音有没有电脑版怎么下载)

    抖音有没有电脑版(抖音有没有电脑版怎么下载)

  • 华为nova5pro尺寸长宽高(华为nova5pro尺寸长宽)

    华为nova5pro尺寸长宽高(华为nova5pro尺寸长宽)

  • 微信支付页面怎么设置指纹(微信支付页面怎么设置面容)

    微信支付页面怎么设置指纹(微信支付页面怎么设置面容)

  • 微信通话中断00是什么意思(微信通话中断原因有哪些)

    微信通话中断00是什么意思(微信通话中断原因有哪些)

  • 华为手机增强服务要启用吗(华为手机增强服务)

    华为手机增强服务要启用吗(华为手机增强服务)

  • 联通信号hd是什么意思(联通号出现hd)

    联通信号hd是什么意思(联通号出现hd)

  • 小米手环怎么恢复出厂设置(小米手环怎么恢复数据)

    小米手环怎么恢复出厂设置(小米手环怎么恢复数据)

  • 苹果7停产了吗(苹果7停产了吗最新消息)

    苹果7停产了吗(苹果7停产了吗最新消息)

  • qq影音如何合并音频(qq影音怎么合并音乐)

    qq影音如何合并音频(qq影音怎么合并音乐)

  • word2003怎么设置纸型(word2003怎么设置横向页面)

    word2003怎么设置纸型(word2003怎么设置横向页面)

  • 物联卡实名认证安全吗(物联卡实名认证后果严重)

    物联卡实名认证安全吗(物联卡实名认证后果严重)

  • qq音乐会员怎么开通(qq音乐会员怎么赠送好友三天会员)

    qq音乐会员怎么开通(qq音乐会员怎么赠送好友三天会员)

  • w10没激活可以用吗(w10没激活能玩游戏吗)

    w10没激活可以用吗(w10没激活能玩游戏吗)

  • 快影怎么去片尾(快影怎么删去片尾)

    快影怎么去片尾(快影怎么删去片尾)

  • hdmi1.4和2.0的区别(hdmi1.4和2.0的区别 电视机)

    hdmi1.4和2.0的区别(hdmi1.4和2.0的区别 电视机)

  • 电脑版钉钉怎么改头像(电脑版钉钉怎么扫描二维码图片)

    电脑版钉钉怎么改头像(电脑版钉钉怎么扫描二维码图片)

  • aptio setup解决步骤(aptio setup解决步骤 2017)

    aptio setup解决步骤(aptio setup解决步骤 2017)

  • 土地增值税特点不包括
  • 个税返还手续费政策
  • 租地建厂房房产税谁交
  • 小微企业企业所得税税率变化
  • 食品增值税发票需要交税吗
  • 所有者投入的普通股会计分录
  • 商贸企业购进商品怎么做成本
  • 税务局代增值税专用发票冲红,如何重新申报退税
  • 电梯生产设备
  • 支付以前年度的费用会计处理
  • 增值税转售行为怎么做会计处理?
  • 二手车融资租赁公司
  • 工程结算收入是什么科目
  • 应交增值税和未交增值税是一个科目吗
  • 年末会计做账怎样少交企业所得税呢?
  • 增值税专票的收款人必须是个人嘛
  • 吊装费用税率
  • 水利工程建设费用组成
  • 存货清查的账务处理的阐述
  • 去年开的增值税普通发票今年可以作废吗
  • 账外资产评估入账固定资产折旧可以税前扣除吗?
  • php生成app
  • 如何备份计算机的注册表
  • window10下载cad2014
  • PHP:mb_strimwidth()的用法_mbstring函数
  • 房地产企业按揭款到账后增值税
  • php获取扩展名的几种方法
  • 开出转账支票补付款项
  • 企业发生的间接费用应先在
  • 免抵退税会计分录怎么写
  • 车船税单子什么样
  • 坏账损失税务处理
  • 特卡波小镇旅游攻略
  • php静态属性和静态方法
  • 劳务费开发票后还需要交个税吗
  • js实现dialog
  • densenet详解
  • 前端开发常用技术
  • word2vec使用方法
  • 10倍理论
  • 小规模纳税人房产税优惠政策2023
  • 场外期权怎么交税
  • 税务局规定500元以下收据的要求
  • 税务发票红字发票怎么开
  • 购买固定资产未入账
  • 管理费用的借贷科目
  • 电子发票开错了应该怎么办?
  • mysql insert语句操作实例讲解
  • 小规模纳税人是什么意思
  • 取得虚开普票如何处置
  • 地下车库的成本和房子哪个高
  • 缴纳房产税和城镇房产税
  • 去年已入账的材料怎么查
  • 土地的入账科目
  • 清算后剩余财产股东拒收怎么办
  • 同比增长怎么算出来的
  • 数据库中的内容怎么换行
  • windows帐户登录
  • mac怎样解压rar
  • 在microsoft store
  • 如何设置个性化桌面
  • shell 写入文本
  • 电脑重装系统win8
  • itunes清理iphone垃圾
  • win7打不开网页,可以重装系统吗
  • microsoft build
  • linux中如何修改文件内容
  • 环境搭建怎么写
  • Cocos2dx CrazyTetris 双线伪裁剪算面积 对于判断消除的思考(二)
  • 用户允许控制
  • Node.js中的http请求客户端示例(request client)
  • js effect
  • 动感相册模板
  • android自学
  • 增值税月报怎么报
  • 税法 农产品增值税题目及答案
  • 企业登录初始密码
  • 国地税机构改革方案
  • 印花税在哪里查询
  • 单位名称变更后发票还能用吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设