五分钟学会Seajs

  • 1:引入包文件 sea.js
  • 2: 启动seajs.use('./main') 设置启动入口模块 参数可以不需要.js后缀
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>06_seajs基本使用</title>
</head>
<body>
  <!-- 1:引包 -->
  <script src="../seajs-3.0.0/dist/sea.js" charset="utf-8"></script>
  <!-- <script src="./one.js" charset="utf-8"></script>
  <script src="./two.js" charset="utf-8"></script> 不适用seajs加载的方式,需要注意文件顺序-->
  <!-- 2: 启动seajs 并且指定入口模块 -->
  <script type="text/javascript">
    seajs.use('./one');
  </script>
</body>
</html>

  • 3: 声明一个模块:模块在define();内部包裹
  • 4: 需要向外暴露值,通过module.exports来返回
define(function(require,exports,module){
      // 如果这个模块需要别的模块的返回值
      var aaa =require('模块路径ID');//返回对方模块内部的module.exports
      module.exports = 返回值;
});

  • 在模块内部,声明的变量,都是模块的作用域
    + 在CMD中,一个模块就是一个文件,外部无法访问
    + 如果需要访问,通过module.exports 向外暴露

define参数的三种方式

  • 字符串 define('123')

define('我是字符串');

  • 对象define({name:'aaa'})

define({name:'gaga',age:19});

  • 函数define(function(require,exports,module){})
define(function(require,exports,module){
  // module.exports = {nane:'jack'}
  return 'abcl';
})

exports和module.exports的小问题

  • 模块被加载的时期,这两个对象都指向一块内存,该内存初始值是一个空对象

  • 不管任意改变哪个对象的内存指向 (对象=值),最终仍然返回module.exports对象

  • 如果module.exports 和exports让你头晕脑胀,建议使用module.exports

  • 框架的使用尽量遵守其规则,基于define内部解析对象,根据参数的数据来,顺序不要改变

  • module.exports 用来赋值并暴露,exports用来给暴露的对象挂载属性,就是一个简写

Use的2种方法

  • use函数是一个异步函数
    • 异步:不阻塞后续代码执行
    • 同步:当前函数不执行完毕,下一行代码无法执行
seajs.use('./a',function(a){
    code....
  })
  // 着重掌握
  seajs.use(['./a','./b'],function(a,b){
    code..
  })
  • seajs.use 第二个参数是一个函数,内部参数与传入的加载模块的返回值的顺序一致

总结

图像 1.png
图像 2.png
图像 3.png
图像 4.png
图像 5.png
图像 6.png
图像 7.png
图像 8.png
图像 9.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ## 前言 The Module Pattern,模块模式,也译为模组模式,是一种通用的对代码进行模块化组织与定义...
    b2e16cc43137阅读 8,209评论 1 4
  • 什么是模块化开发? 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js...
    半世韶华忆阑珊阅读 3,856评论 0 0
  • 转载于作者:linwalker via:http://www.jianshu.com/p/d67bc79976e6...
    猩崽大叔阅读 3,858评论 0 0
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 8,976评论 2 41
  • 每天上课下课,吃饭睡觉循规蹈矩到心灵疲惫,沙漠三天的洗礼简直度过了一个世纪,突然又回到乌云下的沈阳,很想逃回沙漠那...
    DINGZI阅读 1,748评论 0 0