Vue中props传值子组件检测不到的解决办法

   vue项目的开发过程中会遇到这种情况,父子组件传值使用props,但是父组件数据动态改变时,子组件却接收不到最新变化的数据,就好像props突然就失效了一样。这种情况多半是vue的响应式原理失效了,监听不到当前数据的改变

 

 

或者将数据的改变用JSON.parse(JSON.stringify(data))进行转化,但是在去看官方文档时就会发现其实还有更直接了当的方法,那就是对于props接收过来的数据用watch进行监听,并给监听的属性加上一个immediate:true,表示初始化的时候就进行监听。

 

原本以为监听到数据变化时dom就应该按照预期设想的那样进行刷新,但是发现数据层已经变化了,视图层就是不更新,也就是未触发响应式原理,这就需要人为的去进行挂载,这里一直用this.$set,使用如下

 

 

 

posted on 2021-09-23 15:11  还是种田踏实  阅读(3425)  评论(0编辑  收藏  举报