啟動小程序后,首先會執行App({}),中的聲明周期函數。(注冊小程序示例)
onLauch函數,監聽小程序的啟動后的函數(監聽小程序初始化),可以在這個函數中 進行網路請求,或者獲取用戶信息。
和App相關的生命周期函數文檔:https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html
wx.getUserInfo({//獲取用戶信息 success:function(res){ console.log(res) } })
小程序后台運行后,會存活兩個小時,如果在兩個小時內再次進入小程序,不會初始化小程序。
onShow:小程序在前台顯示
onHide(options):小程序后台運行 options中就有小程序的打開場景
onError:小程序中,程序發生錯誤時會執行
補充:一般在App()注冊小程序時,我們會獲取用戶信息,判斷進入小程序的場景
都有哪些小程序進入場景呢?分享,搜索?等等,文檔鏈接:https://developers.weixin.qq.com/miniprogram/dev/reference/scene-list.html
wx.getUserInfo()在將來有可能廢棄,那么補救方案是什么呢?通過button
<button size="mini" open-type="getUserInfo" bindgetUserInfo="handleGetUserInfo">獲取用戶信息</button>
methods:
handleGetUserInfo(event){
event.detail.userInfo
}
另外用open-data組件可以直接展示用戶信息,只是展示,不能獲取
在文檔的 組件 開放能力里可以查看該組件用法
在App()中是可以定義一些全局的數據的
globalData:{
name:"哈哈"
}
在小程序所有頁面都是可以取到全局數據的
const app=get App();//獲取小程序產生的示例對象
console.log(app.globalData.name);
上面說的是小程序初始化時調用App()
那么每個頁面也需要注冊,頁面注冊是調用Page方法
那么在頁面注冊時,Page方法中我們會做什么事情呢?
1、監聽頁面生命周期,請求網絡數據,初始化數據
https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html
幾個常用的生命周期函數:onLoad:頁面加載;onShow:頁面顯示;onHide:頁面隱藏;onUnload:頁面卸載(頁面發生跳轉);onReady:頁面第一次渲染完成
onLoad頁面加載周期函數通常是發起服務器請求:
wx.request({ url: 'http://123.207.32.32:8002//recommend', //僅為示例,並非真實的接口地址 data: { x: '', y: '' }, header: { 'content-type': 'application/json' // 默認值 }, success (res) { console.log(res.data)
this.setData({
list:res.data
}) } })
上面的域名包括端口,需要在 微信管理平台上配置上才能正常發起請求;
當然,我們開發時,可以在微信開發工具的 詳情 按鈕模塊里,將校驗合法域名 取消勾選,這樣我們在開發時就先不用設置合法域名了。
可以在Page中監聽 頁面的點擊事件、上拉刷新、下拉加載等等
另外,在頁面中用箭頭函數的話,里面用this,指向的是Page這個對象,如果用function定義的函數,this指向undefined,我們可以早onLoad生命周期函數中定義一個常量
_this=this;然后在其它方法內就可以用_this來使用this對象了,注意這是es6箭頭函數和正常function函數的一個區別,箭頭函數沒有this,會一級一級往上找。
。