淺談vue.js中的Props(單向資料流)

2020-10-20 21:00:44

prop 是單向繫結的:當父元件的屬性變化時,將傳導給子元件,但是不會反過來。這是為了防止子元件無意修改了父元件的狀態——這會讓應用的資料流難以理解。

另外,每次父元件更新時,子元件的所有 prop 都會更新為最新值。這意味著你不應該在子元件內部改變 prop 。如果你這麼做了,Vue 會在控制檯給出警告。

通常有兩種改變 prop 的情況:

  1. prop 作為初始值傳入,子元件之後只是將它的初始值作為本地資料的初始值使用;

  2. prop 作為需要被轉變的原始值傳入。

更確切的說這兩種情況是:

1.定義一個區域性 data 屬性,並將 prop 的初始值作為區域性資料的初始值。

props: ['initialCounter'],
data: function () {
  return { counter: this.initialCounter }
}

2.定義一個 computed 屬性,此屬性從 prop 的值計算得出。

props: ['size'],
computed: {
  normalizedSize: function () {
    return this.size.trim().toLowerCase()
  }
}

注意在 JavaScript 中物件和陣列是參照型別,指向同一個記憶體空間,如果 prop 是一個物件或陣列,在子元件內部改變它會影響父元件的狀態。

英文原文地址:https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif

相關推薦:

更多程式設計相關知識,請存取:!!

以上就是淺談vue.js中的Props(單向資料流)的詳細內容,更多請關注TW511.COM其它相關文章!