1. vue元件的通訊:包括子通父,父通子,兄弟通訊,祖代與後代通訊,vuex全域性狀態管理。
1.1 父向子通訊:props屬性和refs屬性。
1.1.1 props屬性:
//在子元件中
props:
},age1:[number,string], //存在多種型別。
}//在父元件中
1.1.2 refs屬性:
//通過this.$refs.childdom.*** 呼叫子元件的方法/變數。
1.2 子向父通訊:this.$emit(事件,值)。
//子元件中
this,$emit('send','這是子元件向父元件傳遞的資料');
//父元件中
sendhandle(val)
1.3 兄弟通訊:可以通過$parent,bus,$toot實現,原理就是:子元件a傳給父元件,父元件在傳遞給子元件b。
//兄弟元件a
this.$parent.on('send',(res)=>{}); //監聽當前例項的父元件由vm.$emit觸發的自定義事件
//兄弟元件b
this.$parent.emit('send','b向a傳遞的資料'); //向 當前例項的父元件自定義廣播事件和資料
1.4 祖先和後代元件之間的通訊:通過provide/inject(只能祖先傳遞給後代,不能逆向)。
//祖先元件
provide()
}//後代(後n代)
inject:['foo'] //獲取祖先元件傳遞過來的foo值。
拓展:1. 以前實現後代給祖先通訊的方式:原理就是:後代一層一層向父元件以及父元件的父元件.....傳遞自定義事件和值,直到找到根元件為止。
//後代元件中生成乙個方法dispatch
dispatch(eventname,val)else
}}//祖先元件中
this.$on(eventname,val); //監聽後代元件廣播過來的自定義事件和資料
1.4 任意兩個元件通訊:兩個元件的關係包括父子,兄弟,祖先與後代等,可以通過vuex全域性狀態管理以及$bus實現。
1.4.1 $bus:中小型專案中。
import vue from "vue"
vue.prototype.$bus=new bus();
//在乙個任意元件中
this.$bus.$on(eventname,(res)=>{})
//在另乙個任意元件中
this.$bus.$emit(eventname,val);
1.4.2 vuex:複雜大型專案中。
2. vue元件插槽:slot標籤,包括匿名元件和具名元件。
//1. 寫法:
匿名元件
具名元件
//2.使用
匿名元件的使用
具名元件的使用
3. vue遞迴元件:即元件自己呼叫自己,必須滿足(有結束條件,且必須有name名,且首字母大寫)。
Vue元件化開發
1 模組化 模組化開發是從 邏輯角度來劃分的。2 元件化 是從ui介面角度來劃分的。使用標籤形式引入元件 mycom div 建立元件第一種方式 vue.component mycom 建立乙個vue例項 var vm newvue methods script body 使用標籤形式引入元件 my...
Vue元件化開發
前言 1 全域性元件註冊語法 vue.comonent 元件名稱,2 元件的用法 3 元件註冊注意事項 4 元件的命名方式 vue.component my component vue.component mycomponent 5 區域性元件註冊 var componenta var compon...
Vue元件化開發
1.建立元件構造器 2.註冊元件 3.使用元件 cpn div 1.建立元件構造器物件 const cpnc vue.extend 2.註冊元件 標籤名,元件構造器 vue.component cpn cpnc newvue script 各步驟的含義 1.vue.extend 2.vue.comp...