前端之cmd模块化规范

cmd,全称(Common Module Definition)公共模块定义规范

sea.js 实现了此规范

引入:

再html代码中,直接引入sea.js,然后,在另一块js代码中,使用sea中提供得seajs
调用use方法,传入入口文件路径,如seajs.use('./index')

<script src="./sea.js"></script>
<script>
    seajs.use('./index')
</script>

使用:

和amd规范一样,都是使用define函数,不同的是,传入得一般是一个函数,该函数接收三个参数,分别是require,exports,module。这里就跟我上一篇amd规范得最后一样了。其实,require.js最开始是没有这种使用方法的,后来看cmd的这种方法好用,就也实现了cmd规范。
不过要注意的是,这种方法使用起来,跟commonjs是差不多的,只不过多套了一个函数而已,但是这也造成了一种结果,就是require导入模块是同步的,所以如果需要异步导入,sea.js中提供了require.async(模块路径, function () {})

define(function (require, exports, module) {
  const a = require('a')
  const b = require.async('b', function (b) {
      console.log(b)
  })
})

最后再提一嘴,和amd不同的是,cmd在加载模块之后,会把相应的script元素删除掉,将该模块导出的结果缓存在内存中,而amd则不会删除相应的script元素。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容