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

相关推荐
sugar__salt3 小时前
Document 切割:RAG 知识库数据预处理实战
javascript·langchain·embedding·js·rag·cheerio
小粉粉hhh3 小时前
React(三)——Redux
前端·javascript·react.js
山东点狮信息科技有限公司4 小时前
企业级开源OA系统推荐
vue.js·spring boot·性能优化·系统架构·开源
易知微EasyV数据可视化4 小时前
定制化3D组件开发:打造差异化孪生体验
前端·人工智能·经验分享·数字孪生
多加点辣也没关系4 小时前
JavaScript|第24章:事件循环与并发模型
开发语言·javascript·ecmascript
前端炒粉5 小时前
Vue2 SSE 流式对话完整前端代码
前端·sse·流式输出
BIM云平台开发5 小时前
【App.vue里跟踪页面跳转和用户ID】
开发语言·前端·javascript
汪汪大队u6 小时前
Zabbix 6.0 部署踩坑记:从启动失败到 Web 成功访问
前端·zabbix
顺颂时绥_16 小时前
new Set 过滤数据实战
前端
赵大仁6 小时前
Next.js + Vercel AI SDK 实战:30 分钟搭出流式 Chat 页面
前端·ai·实战·react·next.js·vercel