您好,登錄后才能下訂單哦!
我們在開發(fā)過程中,不可能只在一個組件里面寫東西,當(dāng)一個組件的內(nèi)容過多時候,我們會把各個塊的內(nèi)容分別作為一個單獨(dú)的組件分離出去,這些分離出去的組件被叫做子組件,但是一般請求數(shù)據(jù)的話還是在父組件(最大的外層中)鐘情求,這就要求我們要將父組件中的數(shù)據(jù)傳給各個子組件,子組件才能通過v-for指令進(jìn)行遍歷,遍歷之后再通過item將數(shù)據(jù)傳給比自己更小的子組件,這樣以此類推,最后的小組件再來展示數(shù)據(jù),組件開發(fā)中不可能因為某個小組件而單獨(dú)發(fā)一次請求,這就需要用到組件之間的通信
通常情況下子組件是不能直接訪問父組件或者Vue實例中的數(shù)據(jù)的,但是在開發(fā)中,往往有一些數(shù)據(jù)確實需要從上層傳遞到下層:比如在一個頁面中,我們從服務(wù)器請求到了很多數(shù)據(jù),其中一部分?jǐn)?shù)據(jù)并非使我們整個大頁面組件來展示的,而是需要下面的子組件進(jìn)行展示,這個時候并不會讓子組件再次發(fā)送一次網(wǎng)絡(luò)請求,而是直接讓大組件(父組件)將數(shù)據(jù)傳遞給小組件(子組件)
官方給出的方法
父組件通過props給子組件傳遞數(shù)據(jù)
<子組件標(biāo)簽 :子組件的props屬性 = "父組件的data變量" /> </子組件標(biāo)簽>
子組件通過自定義事件給父組件發(fā)送消息
真實開發(fā)中 ,Vue實例和子組件的通信 與 父組件和子組件的通信過程是一樣的vue實例本身可以看做父組件
子組件中props的數(shù)據(jù)驗證
在子組件中 props可以是數(shù)組,也可以是對象,當(dāng)需要對props進(jìn)行類型驗證時,就需要使用對象語法了,對象的好處的是可以指定必須傳過來的數(shù)據(jù)類型,在開發(fā)中很少用數(shù)組的寫法
//props: ['cmovies', 'cmessage'],
props:{
//1.類型限制
// cmovies:Array,
// cmessage:String,
//2.提供默認(rèn)值 以及必傳值
cmovies:{
type:Array,
default(){
return []
}
},
cmessage:{
type:String,
default:"xiaosaobi",
required:true
}
},
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。