記錄封裝微信小程序的Http請(qǐng)求
home.js調(diào)用theme,hs , theme調(diào)用http,js
home.js
// pages/home/home.js
import {Theme} from "../../Model/theme";
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
data: {
topTheme: null,
},
/**
* 生命周期函數(shù)--監(jiān)聽頁面加載
*/
onLoad: function (options) {
// callBack里拿到了回調(diào)成功的函數(shù):
Theme.getHomeLocationTheme((data) => {
this.setData({
topTheme: data[0],
})
})
},
// 頁面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動(dòng)作:
onPullDownRefresh: function () {
},
// 頁面上拉觸底事件的處理函數(shù):
onReachBottom: function () {
},
// 用戶點(diǎn)擊右上角分享:
onShareAppMessage: function () {
}
})
theme.js
//業(yè)務(wù)對(duì)象:
// 要定義好一個(gè)一個(gè)的業(yè)務(wù)對(duì)象;
// theme , banner , spu(商品) , sku(單品) , address , user等 , 這些都是最基本的業(yè)務(wù)對(duì)象;
import {Http} from "../utils/http";
// ctrl + option + 字母O 自動(dòng)刪除無效的引用
/**
* 主題業(yè)務(wù)對(duì)象類:
*/
class Theme {
// 封裝頂部sale模塊的網(wǎng)絡(luò)請(qǐng)求:接收一個(gè)callBack回調(diào)函數(shù)
static getHomeLocationTheme(callBack) {
Http.request({
url: `theme/by/names`,
method:'GET',
data: {
names: 't-1',
},
// 這邊獲取了實(shí)參data , 然后還要再傳遞出去:
callBack: data =>{
callBack(data);
}
})
/*
// 不加大括弧的形式傳參:
Http.request(`theme/by/names` , 'GET' , {names:'t-1'} , data => {
callBack(data);
})
*/
}
}
export {
Theme,
}
http.js
import {config} from "../Config/Config";
class Http {
// 這邊在request的參數(shù)外層用{}包裹 , 這樣在方法的實(shí)現(xiàn)的時(shí)候就可以像寫JS對(duì)象的方式一樣去書寫代碼了~
static request({url , method = 'GET' , data , callBack}) {
wx.request({
url: `${config.apiBaseUrl}${url}`,
method: method,
data: data,
header: {
appkey: config.appkey,
},
success(res) {
// 把請(qǐng)求成功后獲取的數(shù)據(jù)傳遞出去:
callBack(res.data);
}
})
}
/*
// 這種形參不加大括弧的在外部調(diào)用的時(shí)候就只能用傳參的形式 , 如果加上大括弧就可以像JS傳遞對(duì)象的形式一樣!
static request(url, method = 'GET', data, callBack) {
wx.request({
url: `${config.apiBaseUrl}${url}`,
method: method,
data: data,
header: {
appkey: config.appkey ,
},
success(res) {
callBack(res.data);
}
})
}
*/
}
export {
Http,
}