本篇內(nèi)容介紹了“微信小程序怎么注冊頁面”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
辛集網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,辛集網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為辛集成百上千家提供企業(yè)網(wǎng)站建設(shè)服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務好的辛集做網(wǎng)站的公司定做!
注冊過小程序之后,接下來注冊頁面。
代碼說明
//index.js
//獲取應用實例
var app = getApp()
Page({
data: {
motto: 'Hello World',
userInfo: {}
},
//事件處理函數(shù)
bindViewTap: function() {
wx.navigateTo({
url: '../logs/logs'
})
},
onLoad: function () {
console.log('onLoad')
var that = this
//調(diào)用應用實例的方法獲取全局數(shù)據(jù)
app.getUserInfo(function(userInfo){
//更新數(shù)據(jù)
that.setData({
userInfo:userInfo
})
})
}
})
Page函數(shù)
Page()
函數(shù)接受一個 object 參數(shù),用來注冊一個頁面。它可以指定頁面的初始數(shù)據(jù)、生命周期函數(shù)、事件處理函數(shù)等。
初始化數(shù)據(jù)
data屬性指定的數(shù)據(jù)在頁面第一次描畫時使用。本例中定義了兩個數(shù)據(jù):motto和userinfo。
事件處理
bindViewTap函數(shù)是在index.wxml中綁定到用戶信息表示容器上的。每當用戶點擊該容器,這個函數(shù)就會被調(diào)用。它的內(nèi)容很簡單,就是遷移到log畫面。
生命周期函數(shù)
本例中注冊了onLoad函數(shù),它會在頁面加載時自動調(diào)用。
onLoad函數(shù)以函數(shù)對象為參數(shù)調(diào)用app.getUserInfo函數(shù)。而這個函數(shù)對象以userinfo為參數(shù),功能是將userinfo設(shè)置到頁面數(shù)據(jù)的userinfo對象上。
JavaScript知識
在調(diào)用app.getUserInfo傳遞了一個匿名的函數(shù)對象。這個對象至少有兩點是C程序員不習慣的。
this和that
代碼中首先定義了一個that變量并將this賦值給它,然后使用that調(diào)用setData函數(shù)。這么做是因為javascript的this指針指向的是調(diào)用函數(shù)的上下文。而這個函數(shù)在app.getUserInfo中調(diào)用,所以不能直接使用this,而只能使用事先準備好,指向本頁面對象的that。
函數(shù)對象
在app.js中,作為參數(shù)傳遞給getUserInfo的函數(shù)對象cb是這樣被調(diào)用的:
typeof cb == "function" && cb(this.globalData.userInfo)
我們可以用&&符號將表達式分為兩部分,左邊是取得cb的類型,確認是否是"function”,如果是則繼續(xù)執(zhí)行右半部分,以this.globalData.userInfo為參數(shù)調(diào)用cb函數(shù);如果cb的類型不是"function",因為表達式已經(jīng)為假,所以不會調(diào)用cb函數(shù)。
換一種寫法,其實就是:
if(typeof cb == "function")
{
cb(this.globalData.userInfo)
}
“微信小程序怎么注冊頁面”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!