元件不僅僅是用來進行內容的復用,更重要的是元件之間的要進行通訊。通常父元件的模板中包含子元件,父元件要正向的向子元件傳遞資料或引數,子元件接受到後根據引數額不同來渲染不同的內容或執行操作。這個正向傳遞的過程就是通過props來實現的。
在元件中,使用選項props來宣告需要從父級接受的資料,props的值可以是兩種,一種是陣列,一種是物件。
陣列的方式:props後邊是陣列的形式
渲染的結果是:
props與data函式中return的資料的主要區別:props是來自父級,而data中的是元件自己的資料。作用域是元件的本身。這兩種資料都可以在模板template以及計算屬性和mothods中使用。(作用的區域不同)
有的時候從父級傳遞過來的資料並不是寫死的,而是來自父級的動態資料,這時候使用指令v-bind來動態繫結props的值,當父元件的資料發生變化的時候,也會傳遞給子元件。 很好的乙個例子:如下 }
vue2.0以後就開始的是單向資料流,意思是父元件可以給子元件傳遞資料,但是反過來不行。在vue1.0可以通過.sync修飾符來支援雙向傳遞。vue2.0這樣設計的好處是讓父元件和子元件之間解耦。在js中物件和陣列是引用型別,指向的同乙個位址,所以當子元件發生改變了,父元件也會隨之改變。為了避免這種情況的發生,採用的單向資料流。
大多數的業務中,子元件接受到了父元件的資料,會進行改變... 所以處理這種情況常採用以下的兩種方式。
1. 在元件data中再宣告乙個資料引用父元件傳來的資料,然後在子元件對新宣告的資料進行操作即可,例子: }
2. 另一種情況是prop作為需要被轉變的原始值傳入。這種情況用計算屬性。比如這種情況,用css傳遞寬度的時候要帶單位(px),但是每次寫很麻煩,而且數值計算一般不帶單位的,所以統一在元件的計算屬性中就可以了
Vue 使用 props 傳遞資料
元件不僅僅是要把模板內容進行復用,更重要的是元件間要通訊。通常父元件的模板中包含子元件,父元件要正向的向子元件傳遞資料或引數,子元件接收到引數後,根據引數的不同來渲染不同的內容或執行操作。這個正向傳遞資料的過程就是要通過props來實現的。在元件中,使用選項 props 來宣告需要從父級接受的資料,...
Vue2 0使用props傳遞資料 6
prop驗證 name age component元件 預設 msg 1 childmsg mytext show text msg null msg string msg number msg obj msg twoway msg validate msg number2string msg ob...
props 傳遞資料
props是元件的乙個屬性,它用於進行元件間通訊 在元件模版中使用props來宣告需要從父級接收的資料,props的值可以是物件或者陣列 元件傳遞的資料可以寫死,也可以是來自父元素的動態資料,如果父元素為動態資料,要用v bind動態繫結props的值,當父元件資料變化時,也會傳遞給子元件 v mo...