Vue父子組件通信

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

通常情況下子組件是不能直接訪問父組件或者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
                    }
                },
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章