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

相关推荐
风无雨1 小时前
react antd 项目报错Warning: Each child in a list should have a unique “key“prop
前端·react.js·前端框架
人无远虑必有近忧!1 小时前
video标签播放mp4格式视频只有声音没有图像的问题
前端·video
记得早睡~4 小时前
leetcode51-N皇后
javascript·算法·leetcode·typescript
安分小尧6 小时前
React 文件上传新玩法:Aliyun OSS 加持的智能上传组件
前端·react.js·前端框架
编程社区管理员6 小时前
React安装使用教程
前端·react.js·前端框架
小小鸭程序员6 小时前
Vue组件化开发深度解析:Element UI与Ant Design Vue对比实践
java·vue.js·spring·ui·elementui
拉不动的猪6 小时前
vue自定义指令的几个注意点
前端·javascript·vue.js
yanyu-yaya6 小时前
react redux的学习,单个reducer
前端·javascript·react.js
陌路物是人非6 小时前
SpringBoot + Netty + Vue + WebSocket实现在线聊天
vue.js·spring boot·websocket·netty
skywalk81636 小时前
OpenRouter开源的AI大模型路由工具,统一API调用
服务器·前端·人工智能·openrouter