位置: IT常识 - 正文

vue3,使用watch监听props中的数据(vue watch监听vuex数据)

编辑:rootadmin
vue3,使用watch监听props中的数据 情况一:监听 props 中基本数据类型

推荐整理分享vue3,使用watch监听props中的数据(vue watch监听vuex数据),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue watch监听vuex,vue里面watch,vue中watch监听对象的变化,vue中watch监听对象的变化,vue中watch监听对象的变化,vue里面watch,vue3中的watch怎么用,vue watch监听方法,内容如对您有帮助,希望把文章链接给更多的朋友!

父组件中对传入数据的处理

const handleClick = () => { testStr.value += 'P'}

子组件中监听传入的数据

watch( () => props.testStr, (newVal, oldVal) => { console.log('监听基本类型数据testStr') console.log('new', newVal) console.log('old', oldVal) })

不能使用

watch( props.testStr, () => { console.log('监听基本类型数据testStr') })

的形式,要使用 getter 函数返回值的形式才能触发监听

情况二:监听 props 中引用数据类型且父组件不改变地址指向

父组件中对传入数据的处理

const handleClick = () => { let name = 'lx' let age = 18 dataList.value.push({ name: (name += '~'), age: (age += 1) })}

子组件中监听传入的数据

watch(props.dataList, (newVal, oldVal) => { console.log('监听引用类型数据dataList') console.log('new', newVal) console.log('old', oldVal)})

当父组件传入的是引用类型数据,且在父组件中没有改变该数据的引用地址时,在子组件中可以直接监听传入的数据

情况三:监听 props 中引用数据类型且父组件改变地址指向

父组件中对传入数据的处理

const handleClick = () => { let name = 'lx' let age = 18 dataList.value=[ { name: (name += '~'), age: (age += 1) } ]}

子组件中监听传入的数据

watch( () => props.dataList, (newVal, oldVal) => { console.log('监听引用类型数据dataList') console.log('new', newVal) console.log('old', oldVal) })

当父组件传入的是引用类型数据,且在父组件中通过赋值的形式,改变引用数据的引用地址时,在子组件中要使用 getter 函数返回值的形式,才能监听传入的数据

总结vue3,使用watch监听props中的数据(vue watch监听vuex数据)

1. watch监听 props 中的基本类型数据,需要通过 getter 函数返回值的形式(()=>props.xxx)才能监听

2. watch监听 props 中的引用类型数据,且父组件中没有改变地址指向时,可以直接监听

3. watch监听 props 中的引用类型数据,且父组件中改变了地址指向时,需要通过 getter 函数返回值的形式(()=>props.xxx)才能监听

4. 开发情景:做瀑布流展示

定义变量:const dataList = ref([])

父组件从接口获取第一页数据,将数据存在dataList中:dataList.value = res.data,注意:此时,已经改变引用类型数据 dataList 的地址指向

子组件通过watch监听传入的 dataList,并且调用 manageData() 方法处理 props.dataList 的数据结构:

watch( () => props.dataList, () => { console.log('监听引用类型数据dataList') manageData() ... // 相应逻辑处理 })

注意:此时可以触发监听

用户下拉刷新操作后,继续发送接口,获取第二页,第三页等等后面的数据,父组件通过 push 操作,将获取到的数据 push 进 dataList 中:

for(let item of res.data){dataList.value.push(item)}

注意:此时,虽然父组件传入的 dataList 的值修改了,但是子组件已经不能触发watch及其处理逻辑了 也就是说,manageData() 方法不能调用,没有做到对后续 push 进来的数据进行数据结构的修改,导致页面展示出现问题

解决办法: 一、使用 computed

const dataListTest = computed(() => { manageData() return props.dataList})

二、使用 watchEffect

watchEffect(() => { manageData()})写在最后

最后的瀑布流展示中,我是直接修改了 props 中的数据,虽然从展示来说没有发现什么问题,但是在 Vue 的官网中是这样说的:

PS:本例子使用语法糖 script setup

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

上一篇:ati2plab.exe是什么进程 ati2plab进程安全吗

下一篇:yolov7模型训练结果分析以及如何评估yolov7模型训练的效果(yolov5模型训练)

  • 工资超5000已申报税额为0,可以退税吗
  • 预缴税款计算公式
  • 会计上已资本化处理的工资企业所得税前应如何扣除?
  • 发票多开了,要求退回重开,如何处理
  • 销售给学员的教材是否要缴纳增值税?
  • 工程物资什么时候结转到开发成本里面
  • 公司单独核算项目财务怎么处理?
  • 无形资产原值变动账务处理
  • 应收而未收的装修款如何做账务处理?
  • 原材料计划价实际价区别
  • 工会经费所得税前扣除
  • 仓库的数量为负数怎么办
  • 股东出资不做股本做借款该怎么写分录?
  • 购买办公家具合同
  • 新成立的公司怎么交公积金
  • 外经证预交增值税和专管员
  • 三方协议是先签先干活
  • 所有转让土地税怎么算
  • 快递公司怎么结算
  • 房产评估增值部门有哪些
  • 房屋贷款基准利率表 历年查询
  • 支付佣金费用没扣怎么办
  • 制造成本包括哪几项
  • 出口退税增值税发票稽核信息
  • 夫妻房产分割哪家好
  • 路由器ip分配数量
  • 进口关税和进口增值税怎么算
  • 法人向公司借款要交什么税
  • searchnavversion.exe - searchnavversion是什么进程 作用是什么
  • 微软win11预览版
  • 以前年度损益调整借贷方向
  • 销售固定资产利润率
  • 微信小程序分成比例
  • 企业固定资产账户2019年6月初借方余额5000000元
  • 公司外部人员的差旅费入什么科目
  • thinkphp5自定义标签
  • 企业租赁房屋怎么开票
  • 资金集中度指标公式
  • 固定资产进项税额怎么抵扣
  • 开源项目有什么用
  • 怎样安装∪sb
  • yolov5源码解读
  • kaldi官网
  • java异常编程题
  • 应收票据应付票据合并抵消吗
  • 实发工资总额怎么算
  • 稿酬的支付方式
  • 非营利组织能否开社保账户
  • php 清除缓存
  • mongodb基础命令
  • 领取定额备用金的会计分录
  • 异地交税怎么交
  • 专票没有抵扣联可以作废吗
  • mysql内存使用率过高
  • 去税务局开增值税专用发票流程
  • 代垫运杂费计入销售收入吗
  • 零星采购多少不需要发票
  • 应付暂估余额很大怎么办
  • 计提工资时一定要发票吗
  • 施工单位月末都需要结转什么
  • 生育津贴与员工有关吗
  • 出纳需要遵循的原则
  • 产品利润率如何计算
  • 会计核算方法包括
  • mysql 5.7.30安装
  • win7更改win10系统要怎么更改
  • mac 设置
  • ubuntu系统如何
  • xp系统不能正常启动怎么修复
  • linux系列
  • win10局域网无法上网
  • exceltype函数的用法
  • angular指令详解
  • Python列表list
  • linux中scp命令和scp命令用法大全
  • python urljoin
  • jquery java
  • 税务 违法税收
  • 印花税怎么计提和结转
  • 税务总局广西
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设