微信小程式的事件機制
比如我們android從一個activity跳轉到另一個activity,是通過Intent,而在小程式中從一個介面跳轉到另外一個介面是通過什麼方式呢?而事件又是什麼東東?
什麼是事件
- 事件是檢視層到邏輯層的通訊方式。
- 事件可以將使用者的行為反饋到邏輯層進行處理。
- 事件可以繫結在元件上,當達到觸發事件,就會執行邏輯層中對應的事件處理函式。
- 事件物件可以攜帶額外資訊,如 id, dataset, touches。
事件的使用方式
在元件中繫結一個事件處理函式
如bindtap
,當用戶點選該元件的時候會在該頁面對應的Page中找到相應的事件處理函式
在微信小程式中函式的定義語法
方法名:function(){
// 方法體
}
在微信小程式中觸控事件是tap,但是我們不能直接在標籤中寫tap="click" 而是在tap前加上bind,那麼觸控事件就是bindtap,還有比如長按事件longpress,那麼在標籤中也是bindlongpress
bindtap = "click" 這個意思是當用戶在這個元件也就是控制元件觸控後 會去js中查詢click函式並且執行其中程式碼
click_tap:function(){
console.log("我被點選了");
wx.navigateTo({
url: '../posts/posts',
})
},
這是我點選按鈕後跳轉到另外一個介面,wx可以看做是微信小程式中的內建物件,對應的url其實就是我們app.json配置的地址
但是很奇怪的問題發生瞭如圖:
發現導航欄會有個返回鍵,當我點選返回鍵了以後還是回調了之前的介面.那麼就相當於我們開啟的介面是它的子介面,如果你不想有返回鍵,也就是說不想讓它是子介面,可以這麼弄:
click_tap:function(){
console.log("我被點選了");
wx.redirectTo({
url: '../posts/posts',
})
},
這樣導航欄就不在會有返回鍵了,而成了它是個主介面.
上次講的生命週期方法有二個方法沒說onHide() onUnload() 如果哦懂android得話 這二個方法很好理解,onHide()方法相當於onPause() onUnload()相當於onDestory()方法如果我們介面跳轉是使用了wx.navigateTo,那麼我們跳轉後那個介面還在的,只是被隱藏了而已,假如我們跳轉的是用wx.redirectTo,那麼上一個介面就是被銷燬了,但是在微信小程式中叫做解除安裝.
下班回家繼續寫