小程序模塊化
可以將一些公共的代碼抽離成為一個單獨的 js 文件,作為一個模塊。模塊只有通過 module.exports 或者 exports 才能對外暴露接口。
tips:exports 是 module.exports 的一個引用,因此在模塊里邊隨意更改 exports 的指向會造成未知的錯誤。所以更推薦開發者采用 module.exports 來暴露模塊接口,除非你已經清晰知道這兩者的關系。
// common.js
function sayHello(name) {
console.log(`Hello ${name} !`)
}
function sayGoodbye(name) {
console.log(`Goodbye ${name} !`)
}
module.exports.sayHello = sayHello
exports.sayGoodbye = sayGoodbye
在需要使用這些模塊的文件中,使用 require(path) 將公共代碼引入
const common = require('common.js')
Page({
helloMINA() {
common.sayHello('MINA')
},
goodbyeMINA() {
common.sayGoodbye('MINA')
}
})
tips:require 暫時不支持絕對路徑。
封裝!!!
var project = 'm'; //項目
var apiHost = 'https://xxx.com/'+project; //接口地址
var apiList = {
"userInfo": "/User/userInfo",
};
function getData(cmd, data, cb) {
if (cmd in apiList) {
var new_cmd = apiList[cmd];
var hosts = apiHost + new_cmd;
wx.request({
url: hosts,
data: data,
method: data.method ? data.method : 'GET',
header: {
"Content-Type": "application/x-www-form-urlencoded"
},
success: function(res) {
typeof cb == 'function' && cb(res.data);
},
fail: function() {
console.log('網絡請求失敗');
}
});
} else {
return false;
}
}
// 拋出
module.exports = {
getData: getData,
}
引入
// 相對路徑
var getData = require('../../utils/getData.js');
使用
getData.getData('userInfo', {
openid: app.globalData.openid,
method: "POST"
}, function(data) {
if (!data.errno) {
that.setData({
userInfo: data.userInfo,
})
} else {
// 提示
}
})
