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

相关推荐
copyer_xyf2 分钟前
Python 类型注解:从 TypeScript 迁移理解
前端·后端·python
独特的螺狮粉2 分钟前
宋朝官阶制度APP——通过鸿蒙PC Electron框架完成
前端·华为·electron·开源·harmonyos·鸿蒙·鸿蒙系统
IT_陈寒3 分钟前
React开发实战:从入门到精通
前端·人工智能·后端
wuhen_n3 分钟前
实战!前端开发完整 LangChain AI 智能体(附源码)
前端·langchain·ai编程
超人不会飞_Jay7 分钟前
2026.6.4 Vue用户中心项目笔记
前端·vue.js·笔记
copyer_xyf9 分钟前
Python 函数全面总结
前端·后端·python
时寒的笔记10 分钟前
瑞数案例欧冶解读py和js文件最终版
开发语言·javascript·ecmascript
怕浪猫13 分钟前
Electron 开发实战(十):应用打包与分发|全平台打包、签名、自定义协议实战
前端·javascript·electron
我是伪码农18 分钟前
小程序175-200
前端·javascript·小程序
懂懂tty21 分钟前
Vue3 编译优化
前端·javascript·vue.js