事件
- 事件是視圖層到邏輯層的通訊方式;
- 事件可以綁定在組件上射沟,當(dāng)達(dá)到觸發(fā)事件時殊者,就會執(zhí)行邏輯層中對應(yīng)的事件處理函數(shù);
- 事件對象可以攜帶額外信息验夯,如:id猖吴,dataset,touches挥转。
事件的分類
- 冒泡事件:當(dāng)一個組件上的事件被觸發(fā)后海蔽,該事件會向父節(jié)點(diǎn)傳遞共屈;
- 非冒泡事件:當(dāng)一個組件上的事件被觸發(fā)后,該事件不會向父節(jié)點(diǎn)傳遞
關(guān)于冒泡事件與非冒泡事件的分類見事件
事件的綁定和冒泡
事件的綁定同組件屬性 党窜,以key拗引,value的形式出現(xiàn)
-
key以
bind
或catch
開頭,然后跟上事件的類型(見上文)如:bindtap
幌衣,catchtouchstart
矾削,也可以使用bind
與catch
后緊跟一個冒號,如:bind:tap
豁护,catch:touchstart
- value是一個字符串哼凯,需要在對應(yīng)的Page中定義同名函數(shù);
bind
事件綁定不會阻止冒泡事件向上冒泡楚里,catch
事件綁定會阻止冒泡事件的向上冒泡断部。
事件的使用方式
在組件中綁定一個事件處理函數(shù),在相應(yīng)的Page中寫上相應(yīng)的事件處理函數(shù)腻豌,參數(shù)是event
<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click Me! </view>
使用
WXS
函數(shù)響應(yīng)事件家坎,在組件中綁定和注冊事件處理的WXS
函數(shù),在對應(yīng)的.wxs
文件中定義函數(shù)
<wxs module="wxs" src="./test.wxs"></wxs>
<view id="tapTest" data-hi="WeChat" binftap="{{wxs.tapName}}"> Click me!</view>
事件的捕獲階段
捕獲階段位于冒泡階段之前吝梅,且在捕獲階段中虱疏,事件到達(dá)節(jié)點(diǎn)的順序與冒泡階段恰好相反。
capture-bind
進(jìn)行捕獲階段監(jiān)聽事件苏携,capture-catch
中斷捕獲和取消冒泡階段