小程序支持模块化开发,能够将一些公共的代码抽离成为一个单独的 js 文件,做为一个模块。模块只有经过 module.exports 或者 exports 才能对外暴露接口。引入模块经过require方式。json
建立模块小程序
function sayHello(name) { console.log(`Hello ${name} !`) } function sayGoodbye(name) { console.log(`Goodbye ${name} !`) } module.exports.sayHello = sayHello exports.sayGoodbye = sayGoodbye
引入模块api
var common = require('common.js') Page({ helloMINA: function() { common.sayHello('MINA') }, goodbyeMINA: function() { common.sayGoodbye('MINA') } })
这是官方提供的方法,我我的仍是比较喜欢使用export和import,使用起来比较顺手,多是由于我一直用Vue开发的缘由,下面拿一个实际例子,讲一讲export和import。promise
最近在开发的一个小程序项目,打算使用Promise对API这块作下封装,统一管理API请求。app
新建request.js,提取公共请求路径ide
// 公共路径 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) }) }); }
登陆接口post
function login(params = {}) { return wxRequest('/wechatuser', 'post', params); }
导出ui
// 导出 module.exports = { login }
上面这些代码都在一个文件中,完整代码就不展现了。url
接下来就是导入新建接口文件,
import {login} from '../../api/request'
调用
login().then(res=>{ console.log(res) })
注意一点的是,在引入模块时,要使用相对路径,若是使用绝对路径,在编译后会致使文件找不到。