一、組件的定義與使用
1、vue文件的組成
(1)模板頁(yè)面
(2)js模塊對(duì)象
(3)樣式
2、基本使用
(1)引入組件
(2)映射成標(biāo)簽
(3)使用組件標(biāo)簽
3、關(guān)于標(biāo)簽名與標(biāo)簽屬性名書(shū)寫(xiě)問(wèn)題
(1)寫(xiě)法一:一模一樣
(2)寫(xiě)法二:大寫(xiě)變小寫(xiě),并用-連接
4、組件間通信基本原則
(1)不要在子組件中直接修改父組件的狀態(tài)數(shù)據(jù)
(2)數(shù)據(jù)在哪,更新數(shù)據(jù)的行為(函數(shù))就應(yīng)該定義在哪
5、使用組件標(biāo)簽時(shí)
<my-component name='tom' :age='3' :set-name='setName'></my-component>
6、定義MyComponent時(shí)
(1)在組件內(nèi)聲明所有的props
(2)只指定名稱(chēng)
(3)指定名稱(chēng)和類(lèi)型
(4)指定名稱(chēng)/類(lèi)型/必要性/默認(rèn)值
注意:
(1)此方式用于父組件向子組件傳遞數(shù)據(jù)
(2)所有標(biāo)簽屬性都會(huì)成為組件對(duì)象的屬性,模板頁(yè)面可以直接引用
(3)問(wèn)題:
a.如果需要向非子后代傳遞數(shù)據(jù)必須多層逐層傳遞
b.兄弟組件間也不能直接props通信,必須借助父組件才可以
7、vue自定義事件
(1)綁定事件監(jiān)聽(tīng)
方式一:
通過(guò) v-on 綁定
方式二:
通過(guò) &on()
8、觸發(fā)事件
?this.&emit(eventName, data)
9、消息訂閱與發(fā)布
(1)訂閱消息
PubSub.subscribe('msg', function(msg, data){})
(2)發(fā)布消息
PubSub.publish('msg', data)
注意
優(yōu)點(diǎn):此方式可實(shí)現(xiàn)任意關(guān)系組件間通信(數(shù)據(jù))
10、事件的 2 個(gè)重要操作(總結(jié))
1)綁定事件監(jiān)聽(tīng) (訂閱消息)
目標(biāo): 標(biāo)簽元素 <button>
事件名(類(lèi)型): click/focus
回調(diào)函數(shù): function(event){}
2)觸發(fā)事件 (發(fā)布消息)
DOM 事件: 用戶(hù)在瀏覽器上對(duì)應(yīng)的界面上做對(duì)應(yīng)的操作
自定義: 編碼手動(dòng)觸發(fā)
11、slot
(1)理解
此方式用于父組件向子組件傳遞`標(biāo)簽數(shù)據(jù)
(2)子組件: Child.vue
(3)父組件: Parent.vue