prop 是單向綁定的:當父元件的屬性變化時,將傳導給子元件,但不會反過來。這是為了防止子元件無意修改了父元件的狀態——這會讓應用程式的資料流難以理解。
另外,每次父元件更新時,子元件的所有 prop 都會更新為最新值。這意味著你不應該在子元件內部改變 prop 。如果你這麼做了,Vue 會在控制台給予警告。
通常有兩種改變prop 的情況:
prop 作為初始值傳入,子元件之後只是將它的初始值作為本地資料的初始值使用;
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(單向資料流)的詳細內容。更多資訊請關注PHP中文網其他相關文章!