# require
引入模块。返回模块通过 module.exports
或 exports
暴露的接口。
需要引入其他分包的模块的时候,可以通过配置 callback
回调函数来异步获取指定模块。异步获取失败的时候,将会触发 error
回调函数。
# 参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 需要引入模块文件相对于当前文件的相对路径,或npm模块名,或npm模块路径。默认不支持绝对路径,可通过配置 resolveAlias 自定义路径映射。 |
callback | function | 否 | 异步加载成功回调函数,该回调函数参数为成功加载的模块。 |
error | function | 否 | 异步加载失败回调函数,该回调函数参数为错误信息和模块名。 |
# require.async 链式调用
可以通过链式调用的方式使用。
require
.async('path/to/mod')
.then((mod) => {
console.log(mod)
})
.catch(({ errMsg, mod }) => {
console.error(`path: ${mod}, ${errMsg}`)
})
# 示例代码
# 同一包内调用
// common.js
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')
}
})
# 跨分包异步调用
// subpackage/common.js 分包 common 文件
export const sayHello = () => console.log("hello")
// pages/index.js 主包页面
let common;
require('../../subpackage/common.js', (mod) => {
common = mod
}, ({ errMsg, mod }) => {
console.error(`path: ${mod}, ${errMsg}`)
})
Page({
sayHello() {
common && common.sayHello()
}
})