小程序模塊化
能夠將一些公共的代碼抽離成爲一個單獨的 js 文件,做爲一個模塊。模塊只有經過 module.exports 或者 exports 才能對外暴露接口。小程序
tips:exports 是 module.exports 的一個引用,所以在模塊裏邊隨意更改 exports 的指向會形成未知的錯誤。因此更推薦開發者採用 module.exports 來暴露模塊接口,除非你已經清晰知道這二者的關係。api
// 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 暫時不支持絕對路徑。app
封裝!!!模塊化
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, }
引入ui
// 相對路徑 var getData = require('../../utils/getData.js');
使用url
getData.getData('userInfo', { openid: app.globalData.openid, method: "POST" }, function(data) { if (!data.errno) { that.setData({ userInfo: data.userInfo, }) } else { // 提示 } })