JS模块化5_CMD-SeaJS模块化教程

本文是一篇关于Sea.js的简单使用教程,涵盖了从下载到引入,创建项目结构,定义模块代码,以及如何在index.html中使用模块。主要内容包括同步和异步加载模块,以及模块依赖的处理。示例代码展示了如何在main.js中引用模块并执行,最终输出了模块执行的顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sea.js简单使用教程

1. 下载sea.js, 并引入

  • 官网: http://seajs.org/
  • github : https://github.com/seajs/seajs
  • 将sea.js导入项目: js/libs/sea.js

2. 创建项目结构

|-js
  |-libs
    |-sea.js
  |-modules
    |-module1.js
    |-module2.js
    |-module3.js
    |-module4.js
    |-main.js
|-index.html

3. 定义sea.js的模块代码

  • module1.js (没有依赖)
    define(function (require,exports,module) {
      var name = 'module1';
    
      function fun1() {
        console.log(name);
      }
    
      //暴露模块
      exports.showName = fun1
    });
    
  • module2.js (没有依赖)
    define(function (require,exports,module) {
      var name = 'module2';
    
      function fun2() {
        console.log(name);
      }
    
      //暴露模块
      module.exports = fun2
    });
    
  • module3.js (没有依赖)
    define(function (require,exports,module) {
      var name = 'module3';
    
      function fun3() {
        console.log(name);
      }
    
      //暴露模块
      module.exports = fun3
    });
    
  • module4.js (有依赖)
    //module4依赖于module2,module3
    define(function (require,exports,module) {
      var name = 'module4';
    
      function fun4() {
        console.log(name);
      }
      //同步引入module2
      let module2 = require('./module2')
      module2()
      //异步引入module3
      require.async('./module3',function (m3) {
        m3.foo()
      })
      //暴露模块
      module.exports = fun4
    });
    
  • main.js : 主(入口)模块
    define(function (require) {
      var m1 = require('./module1')
      var m4 = require('./module4')
      m1()
      m4()
    })
    

4. index.html

<!--
使用seajs:
  1. 引入sea.js库
  2. 如何定义导出模块 :
    define()
    exports
    module.exports
  3. 如何依赖模块:
    require()
  4. 如何使用模块:
    seajs.use()
-->
<script type="text/javascript" src="js/libs/sea.js"></script>
<script type="text/javascript">
  seajs.use('./js/modules/main')
</script>

5.思考:为什么运行后输出结果如下?

module2       // module2同步引入,不执行完不会继续执行后续代码
module1
module4  
module3       // module3异步引入,要等回调执行完再执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智者_若愚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值