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