位置: 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模型训练)

  • 无票收入后面附单据吗
  • 公司收到待报解预算收入会计分录
  • 公司购车购置税有优惠吗
  • 税控系统维护费怎么做会计分录
  • 营业执照办理税务登记需要什么资料
  • 两个账户往来款怎么做现金流量表
  • 申报从租计征的房产税必须提前备案吗
  • 充电桩收入属于什么类别
  • 汇算清缴补缴纳企业所得税会计分录
  • 境外中资企业转让股权的涉税处理
  • 中小企业怎么避税
  • 企业管理咨询公司哪家好
  • 筹建期发生的费用
  • 结转预交增值税会计处理
  • 小规模公司没有进项票 开票需要交什么税
  • 旅游业营改增差额征税的会计核算怎么做?
  • 代理进口货物怎么做账
  • 文化建设事业费优惠政策
  • 会计对帐是银行账户吗
  • 开了红字发票税额已经缴纳怎么做账?
  • 资源税纳税期限按月还是按季
  • 华为鸿蒙系统超级终端怎么用
  • 个人所得税计算方法及抵扣方法
  • 认缴制下实收资本可以一直为零吗
  • 家装行业如何确认收入
  • 企业代付个人所得税计算公式
  • 广告制作公司成本核算包含哪些
  • 如何通过手机号码查对方在哪里
  • 存货成本在哪个表里
  • 存货的核算方法一次可以选用几个
  • php生成xml文件
  • 来料加工 增值税
  • linux运行c++程序
  • jquery教程chm
  • 甲供材料总额法和差额法
  • 三栏式明细账需要每笔结余额吗
  • 回购股票并注销影响所有者权益吗
  • python代码用什么运行
  • 帝国cms伪静态规则
  • 研发人员具备的条件
  • 会影响当期损益的科目有
  • 如何确定固定资产是否已经发生减值
  • 哪些需要缴纳企业所得税
  • 租赁厂房对方不租怎么办
  • 供应商货款支付流程
  • 小规模纳税人减按1%怎么计算
  • 劳务费如何计提
  • 税局代开的法律顾问费能否抵扣?
  • 民间非营利组织会计制度最新版
  • 先清卡后报税影响申报吗
  • Windows Server 2003将于7月14日停服 想用收费
  • window 开机启动
  • mac电脑拷贝文件在哪里
  • wp8.0升级8.1
  • linux或者命令
  • win8光盘安装
  • winxp不能正常启动
  • windows 8 build
  • 两种方法教你锁门
  • win7笔记本电脑
  • win8.1系统要求配置
  • 引发脚本异常
  • linux什么是二进制文件
  • 批处理命令在windows操作中的典型应用
  • pythonista可以制作app吗
  • javascript编写函数
  • macos如何使用
  • unity shooter
  • js上传文件到后端
  • unityugui
  • 修复硬盘
  • python方法有哪些
  • 税务公众电话
  • 广东智慧团建登录不上去怎么回事
  • 胡世军简历年龄多大
  • 浙江电子税务开票系统
  • 小额贷款公司在职人员和离职人员情节哪种轻
  • 烟叶税属于中央税还是地方税
  • 珠海选调生2021公告
  • 社会救助档案管理规范化的好处
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设