Vue道具数据未在子组件中更新

Pen*_*ers 3 javascript frontend vue.js vue-component vuejs2

大家好,我只想对vue props数据做一些解释。所以我将值从父组件传递到子组件。问题是,当父数据有数据更改/更新时,它不在子组件中更新。

Vue.component('child-component', {
  template: '<div class="child">{{val}}</div>',
  props: ['testData'],
  data: function () {
    return {
        val: this.testData
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

但是使用道具名称{{testdata}}可以正确显示父级的数据

Vue.component('child-component', {
  template: '<div class="child">{{testData}}</div>',
  props: ['testData'],
  data: function () {
    return {
        val: this.testData
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

提前致谢

小提琴链接

Phi*_*hil 7

最好用一个非常简单的例子来解释

let a = 'foo'
let b = a
a = 'bar'

console.info('a', a)
console.info('b', b)
Run Code Online (Sandbox Code Playgroud)

分配时...

val: this.testData
Run Code Online (Sandbox Code Playgroud)

你设置的初始值val一旦创建组件时。对道具的更改将不会以上项的val更改a不会在中反映出来b

参见https://vuejs.org/v2/guide/components.html#One-Way-Data-Flow

  • 这没有回答如何使道具动态化的问题。 (2认同)
  • 它的字面意思正是我所说的。我建议你再读一遍这个问题。在这种情况下,我认为 prop 需要作为计算值传入,并且孩子中需要有一个观察者。解释这个概念并不能回答问题。/sf/ask/3502497281/ (2认同)