Vue父子組件通訊

咱們在開發過程當中,不可能只在一個組件裏面寫東西,當一個組件的內容過多時候,咱們會把各個塊的內容分別做爲一個單獨的組件分離出去,這些分離出去的組件被叫作子組件,可是通常請求數據的話仍是在父組件(最大的外層中)鍾情求,這就要求咱們要將父組件中的數據傳給各個子組件,子組件才能經過v-for指令進行遍歷,遍歷以後再經過item將數據傳給比本身更小的子組件,這樣以此類推,最後的小組件再來展現數據,組件開發中不可能由於某個小組件而單獨發一次請求,這就須要用到組件之間的通訊vue

一般狀況下子組件是不能直接訪問父組件或者Vue實例中的數據的,可是在開發中,每每有一些數據確實須要從上層傳遞到下層:好比在一個頁面中,咱們從服務器請求到了不少數據,其中一部分數據並不是使咱們整個大頁面組件來展現的,而是須要下面的子組件進行展現,這個時候並不會讓子組件再次發送一次網絡請求,而是直接讓大組件(父組件)將數據傳遞給小組件(子組件)數組

官方給出的方法
父組件經過props給子組件傳遞數據
<子組件標籤 :子組件的props屬性 = "父組件的data變量" /> </子組件標籤>
子組件經過自定義事件給父組件發送消息
服務器

Vue父子組件通訊

Vue父子組件通訊

真實開發中 ,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
                    }
                },
相關文章
相關標籤/搜索