小程序支持模块化开发,可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块只有通过 module.exports 或者 exports 才能对外暴露接口。引入模块通过require方式。
创建模块
function sayHello(name) {
console.log(`Hello ${name} !`)
}
function sayGoodbye(name) {
console.log(`Goodbye ${name} !`)
}
module.exports.sayHello = sayHello
exports.sayGoodbye = sayGoodbye
引入模块
var common = require('common.js')
Page({
helloMINA: function() {
common.sayHello('MINA')
},
goodbyeMINA: function() {
common.sayGoodbye('MINA')
}
})
这是官方提供的方法,我个人还是比较喜欢使用export和import,使用起来比较顺手,可能是因为我一直用Vue开发的原因,下面拿一个实际例子,讲一讲export和import。
最近在开发的一个小程序项目,打算使用Promise对API这块做下封装,统一管理API请求。
新建request.js,提取公共请求路径
// 公共路径
const path = "http://172.16.50.83:82"
定义promise化接口
/**
* promise化接口
*/
function wxRequest(url, method, params) {
return new Promise((resolve, reject) => {
wx.request({
url: path + url,
method: method,
data: params,
header: {
'content-type': 'application/json'
},
success: res => resolve(res),
fail: res => reject(res)
})
});
}
登录接口
function login(params = {}) {
return wxRequest('/wechatuser', 'post', params);
}
导出
// 导出
module.exports = {
login
}
上面这些代码都在一个文件中,完整代码就不展示了。
接下来就是导入新建接口文件,
import {login} from '../../api/request'
调用
login().then(res=>{
console.log(res)
})
注意一点的是,在引入模块时,要使用相对路径,如果使用绝对路径,在编译后会导致文件找不到。