本文主要是介绍vue父组件给子组件传值,子组件不渲染的原因及解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
父组件传递给子组件的数据,如果是一个复杂对象(例如一个数组或对象),那么子组件只会监听对象的引用而不是对象的内容。这意味着当对象的内容发生变化时,子组件不会更新。
解决:
1、在子组件使用 watch 监听 props传过来的值,如果发现改变,调用forceUpdate刷新视图。
this.$forceUpdate()
2、父组件中声明一个布尔变量,数据发生变化后,切换一下变量状态,可刷新子组件视图。
3、数据发生变化后,在下面调用一下splice方法修改原数组长度(索引、截取长度都为0),数组不变,但视图可成功渲染。
this.list.splice(0, 0)
这篇关于vue父组件给子组件传值,子组件不渲染的原因及解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!