vue列印props的值 vue props 傳值

2021-10-25 16:37:00 字數 1256 閱讀 3849

一、子元件需要做的

子元件要顯式地用 props 選項宣告它期待獲得的資料

props:[data]

然後在元件內使用data

二、父元件需要做的

這個時候需要區分靜態傳值和靜態傳值

靜態在父元件使用子元件標籤時

這個時候靜態傳值就完成了

動態在父元件使用子元件標籤時

data()}

注:在傳遞數字的時候盡量使用靜態傳值

三、props驗證

有時候我們需要對傳遞過來的值進行驗證,以確定傳遞的值符合我們的要求

要指定驗證規格,需要用物件的形式,而不能用字串陣列  這時的props需要寫成物件

props:

注: 當 prop 驗證失敗,vue 會在丟擲警告 (如果使用的是開發版本)。props會在元件例項建立之前進行校驗,所以在 default 或 validator 函式裡,諸如 data、computed 或 methods 等例項屬性還無法使用;

四、單向資料流

props傳值是單向的:父元件的資料可以傳給子元件,而子元件的資料不能傳給父元件,這是為了防止子元件無意修改了父元件的狀態,每次父元件更新時,子元件的所有 prop 都會更新為最新值。這意味著不應該在子元件內部改變 prop。如果這麼做了,vue 會在控制台給出警告

五、修改props資料

通常改變props的資料有兩個原因

1、prop 作為初始值傳入後,子元件想把它當作區域性資料來用

2、prop 作為初始值傳入,由子元件處理成其它資料輸出

注:js中物件和陣列是引用型別,指向同乙個記憶體空間,如果 prop 是乙個物件或陣列,在子元件內部改變它會影響父元件的狀態

因此  接下來:

1、定義乙個區域性變數,並用 prop 的值初始化它

props: ['initialcounter'],    data: function ()     }

但是,定義的區域性變數counter只能接受initialcounter的初始值,當父元件要傳遞的值發生變化時,counter無法接收到最新值

2、定義乙個計算屬性,處理 prop 的值並返回

props: ['size'],    computed:     }

但是,由於是計算屬性,則只能顯示值,而不能設定值

3、更好的方式,使用變數儲存prop的初始值,並使用watch來觀察prop的值的變化。發生變化時,更新變數的值

props:['childmsg'],    data()     },     watch:     }

vue的props屬性,vue的插槽

vue元件的props屬性 當我們用到vue的父子傳值的時候 父傳子 就可以用props屬性來完成,我們在子元件中定義乙個props屬性,然後只需要在呼叫這個元件時給這個屬性賦值便能傳給子元件 首先我們在元件scroller的props中定義兩個屬性,handletoscroll,handletot...

vue中修改props傳進來的值

總所周知,vue是單向資料流,一般我們也不會在子元件裡面修改父元件傳進來的值,但總有需要修改的時候。前段時間乙個專案中有遇到上述情況,假設我直接傳進來乙個list,當時我直接在裡面改了list,但是卻驚訝的發現沒有報錯,以前好像有遇到直接修改丟擲錯誤的,但這次卻沒有,當時也沒有多想,最近空閒下來又想...

vue中修改props傳進來的值

眾所周知,vue是單向資料流,一般我們也不會在子元件裡面修改父元件傳進來的值,但總有需要修改的時候。前段時間乙個專案中有遇到上述情況,假設我直接傳進來乙個list,當時我直接在裡面改了list,但是卻驚訝的發現沒有報錯,以前好像有遇到直接修改丟擲錯誤的,但這次卻沒有,當時也沒有多想,最近空閒下來又想...