您好,登錄后才能下訂單哦!
本篇內容介紹了“微信小程序怎么注冊頁面”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
注冊過小程序之后,接下來注冊頁面。
代碼說明
//index.js
//獲取應用實例
var app = getApp()
Page({
data: {
motto: 'Hello World',
userInfo: {}
},
//事件處理函數
bindViewTap: function() {
wx.navigateTo({
url: '../logs/logs'
})
},
onLoad: function () {
console.log('onLoad')
var that = this
//調用應用實例的方法獲取全局數據
app.getUserInfo(function(userInfo){
//更新數據
that.setData({
userInfo:userInfo
})
})
}
})
Page函數
Page()
函數接受一個 object 參數,用來注冊一個頁面。它可以指定頁面的初始數據、生命周期函數、事件處理函數等。
初始化數據
data屬性指定的數據在頁面第一次描畫時使用。本例中定義了兩個數據:motto和userinfo。
事件處理
bindViewTap函數是在index.wxml中綁定到用戶信息表示容器上的。每當用戶點擊該容器,這個函數就會被調用。它的內容很簡單,就是遷移到log畫面。
生命周期函數
本例中注冊了onLoad函數,它會在頁面加載時自動調用。
onLoad函數以函數對象為參數調用app.getUserInfo函數。而這個函數對象以userinfo為參數,功能是將userinfo設置到頁面數據的userinfo對象上。
JavaScript知識
在調用app.getUserInfo傳遞了一個匿名的函數對象。這個對象至少有兩點是C程序員不習慣的。
this和that
代碼中首先定義了一個that變量并將this賦值給它,然后使用that調用setData函數。這么做是因為javascript的this指針指向的是調用函數的上下文。而這個函數在app.getUserInfo中調用,所以不能直接使用this,而只能使用事先準備好,指向本頁面對象的that。
函數對象
在app.js中,作為參數傳遞給getUserInfo的函數對象cb是這樣被調用的:
typeof cb == "function" && cb(this.globalData.userInfo)
我們可以用&&符號將表達式分為兩部分,左邊是取得cb的類型,確認是否是"function”,如果是則繼續執行右半部分,以this.globalData.userInfo為參數調用cb函數;如果cb的類型不是"function",因為表達式已經為假,所以不會調用cb函數。
換一種寫法,其實就是:
if(typeof cb == "function")
{
cb(this.globalData.userInfo)
}
“微信小程序怎么注冊頁面”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。