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

相关推荐
Wect10 小时前
LeetCode 39. 组合总和:DFS回溯解法详解
前端·算法·typescript
Wect10 小时前
LeetCode 46. 全排列:深度解析+代码拆解
前端·算法·typescript
IT_陈寒10 小时前
Vite 凭什么比 Webpack 快50%?揭秘闪电构建背后的黑科技
前端·人工智能·后端
颜酱10 小时前
Dijkstra 算法:从 BFS 到带权最短路径
javascript·后端·算法
hi大雄11 小时前
我的 2025 —— 名为《开始的勇气》🌱
前端·年终总结
从文处安11 小时前
「前端何去何从」一直写 Vue ,为何要在 AI 时代去学 React?
前端·react.js
aircrushin11 小时前
OpenClaw“养龙虾”现象的社会技术学分析
前端·后端
明君8799711 小时前
#Flutter 的官方Skills技能库
前端·flutter
yuki_uix11 小时前
重新认识 React Hooks:从会用到理解设计
前端·react.js
林太白12 小时前
ref和reactive对比终于学会了
前端