小程序模块化
可以将一些公共的代码抽离成为一个单独的 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 { // 提示 } })
来源:https://www.cnblogs.com/jiqing9006/p/10542483.html