微信小程序:开发入门及案例详解
上QQ阅读APP看书,第一时间看更新

2.5.3 模块的使用

模块接口的暴露和引入十分简单:

□通过exports暴露接口。

□通过require(path)引入依赖,path是需要引入的模块文件的相对路径。

示例代码如下:

    var privateData = 'weixin';
    function run( who ) {
      console.log( who + ' run' );
    }
    function walk( who ) {
      console.log( who + ' walk' );
    }
    module.exports.run = run;
    exports.walk = walk;
    /**
      也可以这样
      module.exports = {
        run : run,
        walk : walk
      };
    */
    var otherMod = require( 'mod.js' ); /*   */
    Page( {
      onShow : function() {
        /* 这里会打印出somebody run */
        otherMod.run( 'somebody' );
        /* 这里会打印出somebody walk */
        otherMod.walk( 'somebody' );
      }
    } );

需要注意的是:

□exports是module.exports的一个引用,因此在模块里面随意更改exports的指向会造成未知的错误。所以我们更推荐开发者采用module.exports来暴露模块接口,除非你已经很清晰地知道这两者的关系。

□小程序目前不支持直接引入node_modules,开发者需要使用node_modules时建议拷贝出相关代码到小程序目录中。

通过模块化我们能实现代码真正的隔离,可以多人并行开发,降低大型项目管理难度,这对前端工程化具有很大促进作用。