美文网首页
前端之cmd模块化规范

前端之cmd模块化规范

作者: web前端_潘哥哥 | 来源:发表于2022-01-05 19:18 被阅读0次

    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元素。

    相关文章

      网友评论

          本文标题:前端之cmd模块化规范

          本文链接:https://www.haomeiwen.com/subject/fbdkcrtx.html