溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

小程序開發(fā)中事件指的是什么

發(fā)布時間:2021-03-15 15:21:40 來源:億速云 閱讀:260 作者:小新 欄目:移動開發(fā)

這篇文章給大家分享的是有關小程序開發(fā)中事件指的是什么的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在微信小程序開發(fā)中什么是事件?從事件的定義解釋,事件是視圖層到邏輯層的通訊方式。事件可以將用戶的行為反饋到邏輯層進行處理,同時綁定在組件上,當達到觸發(fā)事件,就會執(zhí)行邏輯層中對應的事件處理函數(shù)。除此之外事件對象可以攜帶額外信息,如 id, dataset, touches。

由于微信小程序框架采用邏輯層與UI層分析的設計方式,這種設計方式需要解決兩個問題:視圖層響應邏輯層邏輯和數(shù)據(jù)的變化,視圖層將用戶的操作反饋到邏輯層。微信定義了一些語法和規(guī)則來幫助開發(fā)者連接視圖層和邏輯層。通過數(shù)據(jù)綁定可以解決前一個問題,而第二個問題就需要用事件來解決。

事件綁定

通過事件綁定來完成對用戶操作的響應,比如要處理view標簽的tap事件,在標簽屬性中添加bindtap = \'tapName\', 然后在.js中添加tapName函數(shù)

//wxml
Click me!
//.js
Page({
tapName:function(event) {
console.log(event)
}
})

event對象包含一些關于事件的數(shù)據(jù):

target:觸發(fā)事件的組件

currentTarget:當前組件

type:事件類型

timeStamp:時間戳(頁面打開到觸發(fā)事件所經(jīng)過的毫秒數(shù))

touches:包含觸摸點的數(shù)組(多點觸控)

changedTouches :發(fā)生改變的觸摸點的數(shù)組(多點觸控)

detail:額外的自定義信息

冒泡事件和非冒泡事件

為什么會有target和currentTarget之分呢,這是由于事件分為兩類,冒泡事件和非冒泡事件

冒泡事件:當一個組件上的事件被觸發(fā)后,該事件會向父節(jié)點傳遞。

非冒泡事件:當一個組件上的事件被觸發(fā)后,該事件不會向父節(jié)點傳遞。

其中tap事件是屬于冒泡事件(這也是為什么上面例子中的event會包含currentTarget)。

為什么需要冒泡事件

有了冒泡事件,就可以更加方便的實現(xiàn)一些功能。

比如程序有一個視圖,包含用戶頭像和姓名,當用戶點擊頭像或姓名時,進入用戶詳情頁面。如果沒有冒泡事件,就需要處理頭像和姓名的點擊事件,而現(xiàn)在只需在外層包裹一個組件,并處理該組件的事件即可。

阻止事件冒泡

在有些情況下可能會希望阻止事件的冒泡行為,可以使用catch事件綁定,如catchtap,就可以阻止事件的冒泡行為。

可以通過下面的代碼示例來加深對冒泡事件的理解

//.wxml
我是父親節(jié)點
我是兒子節(jié)點
我是孫子節(jié)點

//.js
Page({
handleTapOutter:function(event) {
console.log(父親節(jié)點被點擊)
},
handleTapMiddle:function(event) {
console.log(兒子節(jié)點被點擊)
},
handleInner:function(event) {
console.log(孫子節(jié)點被點擊)
},
})

總結下來事件就是指發(fā)生了一些事情,通常是用戶進行了一些操作,如點擊某個按鈕或在手機屏幕上滑動了手指。當事件發(fā)生時,框架會調(diào)用事件處理函數(shù)(如果有的話),這樣就可以實現(xiàn)對用戶操作的響應。

感謝各位的閱讀!關于“小程序開發(fā)中事件指的是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI