為什么要使用頁面全局參數:方便使用數據。
由於總頁數需要再另外的一個方法中使用,所以要把總頁數變成一個頁面全局參數。因為取數據使用this.xxx即可,中間不用加data,給頁面全局參數賦值頁方便,直接使用this.xxx=值即可,不需要使用setData()
頁面全局參數與data同層級。
Page({ /** * 頁面的初始數據 */ data: { goodsList: [], total: 0 }, //接口要的參數 QueryParams: { query: '', cid: '', pagenum: 1, pagesize: 10 }, // 總頁數 totalPages: 1, /** * 生命周期函數--監聽頁面加載 */ onLoad: function (options) { //console.log(options) this.QueryParams.cid = options.cid || '' this.QueryParams.query = options.query || '' this.getGoodsList(); }, async getGoodsList(){ //console.log(this.QueryParams) const res = await request({url: "/goods/search",data: this.QueryParams}) console.log(res) //獲取總條數 const total = res.total //計算總頁數 this.totalPages = Math.ceil(total / this.QueryParams.pagesize) console.log(this.totalPages) this.setData({ //拼接了數組 goodsList: [...this.data.goodsList,...res.goods] }) wx.stopPullDownRefresh(); }, /** * 頁面相關事件處理函數--監聽用戶下拉動作 */ onPullDownRefresh: function () { this.setData({ goodsList: [] }) this.QueryParams.pagenum = 1; this.getGoodsList(); }, /** * 頁面上拉觸底事件的處理函數 */ onReachBottom: function () { // console.log("頁面觸底") //判斷還有沒有下一頁 if(this.totalPages > this.QueryParams.pagenum){ //console.log("還有下一頁") this.QueryParams.pagenum++; this.getGoodsList(); }else{ //console.log("沒有下一頁了") wx.showToast({ title: '沒有下一頁數據了!' }); } }, })
注意:獲取data數據模型中的值是通過this.data.xx來獲取的。注意:微信小程序中獲取數據模型中的值和給數據模型中的屬性賦值都與vue中的不一樣。
把輸入框的值賦值給data當中使用setData方法。