vue3父组件改变 子组件不改变(uniapp)

项目中遇到了这么个问题

场景:封装select组件,通过子组件选中后传递值给父组件,父组件需要回显这个值(这里使用 defineProps和defineEmits就可以实现,或者直接使用defineModel也可以实现,但是uniapp目前不支持),使用后父组件确实是拿到值了,但是子组件回显不出来,打印父组件确实是有这个值并且是响应式的

排查结果:子组件在接收defineProps的时候是处于setup生命周期里面,也就是只会触发一次defineProps,所以子组件接收不到后续的值

解决方法:

1:使用定时器定时拿取defineProps

结果:性能消耗过大,并且你封装肯定不止一个地方使用,直接pass

2:使用watch监听

javascript 复制代码
watch(()=>echo.value,(New, Old) => {
console.log(`新值:${New} --------- 老值:${Old}`)
})

结果:监听不到这个值的变化

3:使用watchEffect监听

javascript 复制代码
watchEffect(() => {
        echo.value = data.value
    })

结果:成功解决,在这个函数里再赋一次值即可

官方地址:响应式 API:核心 | Vue.js

相关推荐
CharlesYu012 小时前
前端性能优化的第一性原理,是不断缩短“用户发起意图 → 获得可用结果”之间的时间
前端
Bs_MoneyMagnet2 小时前
基于springboot+vue的医疗健康便民服务平台的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring
平头哥技术团队3 小时前
Day 21 _ 页内锚点_给每段起个 id,目录写 href=_#id_,点一下页面就滚到那一段
前端·html·html5
子兮曰4 小时前
Bun v1.4.1 深度解析:从 Zig 到 Rust,一场 11 天、64 个 AI 代理的语言迁徙
前端·后端·bun
人民广场吃泡面4 小时前
什么是AI Agent?它又能给前端带来哪些效率提升?
前端·人工智能
中科三方4 小时前
两家域名注册商资质被ICANN终止:企业域名资产安全再受关注
前端·网络·安全·域名
bug总结5 小时前
uniapp vue3全局方法注册使用
前端·javascript·uni-app
华无丽言5 小时前
如何在宜搭中实现获取子表中的字段值赋值到父表中?
前端·javascript·低代码
IT_陈寒6 小时前
Vue的computed属性竟然坑了我一把
前端·人工智能·后端
威斯软科的老司机6 小时前
通俗讲解 CNN 图像识别、向量 Embedding、Softmax 概率计算这三块的简化原理
前端·人工智能·ui·数字孪生