Vue.js 父组件传值子组件不更新?3种解决方法!
当父组件的prop值改变时,子组件的视图不会自动更新。这是因为Vue默认只会检测到props对象的引用变化,而不会检测到引用对象内部值的变化。为了解决这个问题,可以使用以下方法:
- 使用计算属性:在子组件中,将props的值作为计算属性的依赖,并返回一个新的计算值。这样,当props的值改变时,计算属性的依赖也会改变,从而触发子组件的更新。
props: ['propValue'],
computed: {
  computedValue() {
    return this.propValue;
  }
}
- 使用watch监听props的变化:在子组件中,使用watch监听props的变化,并在回调函数中更新子组件的值。
props: ['propValue'],
watch: {
  propValue(newValue) {
    this.childValue = newValue;
  }
}
- 使用.sync修饰符:在父组件中,通过使用.sync修饰符来实现props的双向绑定,这样当父组件的值改变时,子组件的值也会自动更新。
<child-component :propValue.sync='parentValue'></child-component>
以上是几种解决方法,你可以根据具体情况选择适合的方法。
原文地址: https://www.cveoy.top/t/topic/qg0R 著作权归作者所有。请勿转载和采集!