requireMiniProgram()

基础库 2.11.1 开始支持,低版本需做兼容处理

插件引入当前使用者微信小程序。返回使用者微信小程序通过插件配置中 export 暴露的接口。参考 使用插件 – 导出到插件

该接口仅在插件中存在。

参数

该接口不需要参数

示例代码

// in plugin
var mp = requireMiniProgram()
console.log(mp.whoami)  // 'Wechat MiniProgram'

any requirePlugin(string path)

引入插件。返回插件通过 main 暴露的接口。参考 使用插件 – js 接口

参数

名称 类型 说明
module string 需要引入的插件的 alias。基础库 ‘2.14.0’ 起,也可以是插件的 AppID

示例代码

var myPluginInterface = requirePlugin('myPlugin');

myPluginInterface.hello();
var myWorld = myPluginInterface.world;
var myPluginInterface = requirePlugin('wxIDxxxxxxxxxx'); // 2.14.0 起

Object 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

对象模块

当前模块对象

属性

属性 类型 说明
exports Object 模块向外暴露的对象,使用require引用该模块时可以获取

示例代码

// common.js
function sayHello(name) {
  console.log(`Hello ${name} !`)
}
function sayGoodbye(name) {
  console.log(`Goodbye ${name} !`)
}

module.exports.sayHello = sayHello
exports.sayGoodbye = sayGoodbye

require

引入模块。返回模块通过 module.exportsexports 暴露的接口。

需要引入其他分包的模块的时候,可以通过配置 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()
    }
})