当前位置: 首页 > 编程笔记 >

JavaScript的模块化开发框架Sea.js上手指南

邢凌
2023-03-14
本文向大家介绍JavaScript的模块化开发框架Sea.js上手指南,包括了JavaScript的模块化开发框架Sea.js上手指南的使用技巧和注意事项,需要的朋友参考一下

Sea.js所有源码都存放在 GitHub 上:https://github.com/seajs/examples,目录结构为:

examples/
 |-- sea-modules   存放 seajs、jquery 等文件,这也是模块的部署目录
 |-- static      存放各个项目的 js、css 文件
 |   |-- hello
 |   |-- lucky
 |   `-- todo
 `-- app       存放 html 等文件
    |-- hello.html
    |-- lucky.html
    `-- todo.html

引入seajs主文件

<script src="js/sea.js"></script>
<script type="text/javascript">
  // seajs配置项
  seajs.config({
    //设置基本的JS路径(引用外部文件的根目录)
    base:"./js",
    //设置别名(方便后面引用使用)
    alias:{
      "jQuery":"jquery.js"
    },
    //路径配置(跨目录调用或者目录比较深时使用)
    paths: {
      'jQuery': 'http://libs.baidu.com/jquery/2.0.0/'
    },
    //设置文件编码
    charset:"utf-8",
    //预加载文件
    preload:['jQuery']
  });
  // 引用主入口文件
  seajs.use(['main','jQuery'],function(e,$){
    //回调函数
    alert("全部加载完成");
  });
</script>

seajs主入口文件(main)

define(function(require, exports, module) {
  // 主入口文件引入其他文件依赖
  //var testReQ = require('index');
   var testReQ = require.async('index',function(){
      //异步加载回调
      alert("我是异步加载的index的回调函数");
   });
  // 运行index释放的接口方法
  // testReQ.testInit();

  // 运行index释放的接口方法(module)
  testReQ.textFun();
});

seajs依赖文件(index)

define(function(require, exports, module) {
  // 对外释放接口
  exports.testInit = function(){
    alert("我是一个接口");
  };
  // 如果需要释放大量接口,可以使用module
  var testObj = {
    name:"qiangck",
    sex:"man",
    textFun:function(){
      alert("我是一个使用module.exports的对象方法");
    }
  }
  // module.exports接收obj对象
  module.exports = testObj;
});

文件的加载顺序

下面我们从 hello.html 入手,来瞧瞧使用 Sea.js 如何组织代码。

在页面中加载模块

在 hello.html 页尾,通过 script 引入 sea.js 后,有一段配置代码:

// seajs 的简单配置
seajs.config({
 base: "../sea-modules/",
 alias: {
  "jquery": "jquery/jquery/1.10.1/jquery.js"
 }
})

// 加载入口模块
seajs.use("../static/hello/src/main")

sea.js 在下载完成后,会自动加载入口模块。页面中的代码就这么简单。

模块代码

这个小游戏有两个模块 spinning.js 和 main.js,遵循统一的写法:

// 所有模块都通过 define 来定义
define(function(require, exports, module) {

 // 通过 require 引入依赖
 var $ = require('jquery');
 var Spinning = require('./spinning');

 // 通过 exports 对外提供接口
 exports.doSomething = ...

 // 或者通过 module.exports 提供整个接口
 module.exports = ...

});

上面就是 Sea.js 推荐的 CMD 模块书写格式。如果你有使用过 Node.js,一切都很自然。

 类似资料:
  • 在尝试了使用 AWS 开发 Serverless 应用之后,我便想尝试使用 OpenWhisk 框架来搭建自己的 Serverless 服务。 Apache OpenWhisk(http://openwhisk.org/)是一个由IBM和Adobe驱动的开源项目,它是一个健壮的FaaS平台,可以部署在 云或数据中心内。相比其他serverless项目,OpenWhisk是一个健壮的、可扩展的平台,

  • 如果一个页面只是一个按钮点击事件或者一个function的话,是没有必要进行模块化处理的。 而如果一个页面有两个按钮或者两个function的话,是需要进行考虑模块化处理了。 模块化不是必须的,它是业务膨胀的必然结果。 比如一个常见的表单提交: 表单验证 => 数据包装 => ajax提交 => 响应处理 => 显示对话框 无论上述的哪一个步骤,都不是一个function可以解决的, 将上述每一

  • Introduction When we say an application is modular, we generally mean it’s composed of a set of highly decoupled, distinct pieces of functionality stored in modules. As you probably know, loose coupli

  • 本文向大家介绍Node.js的Express框架使用上手指南,包括了Node.js的Express框架使用上手指南的使用技巧和注意事项,需要的朋友参考一下 Express介绍 npm提供了大量的第三方模块,其中不乏许多Web框架,比如我们本章节要讲述的一个轻量级的Web框架 ——— Express。 Express是一个简洁、灵活的node.js Web应用开发框架, 它提供一系列强大的功能,比如

  • 随着互联网的飞速发展,前端开发越来越复杂,导致开发经常出现两个问题: 恼人的命名冲突 烦琐的文件依赖 针对这两个问题,可以使用js模块化技术来解决。当前主流的js模块化有两大规范CMD(Seajs)和AMD规范(RequireJS)。WeX5采用RequireJS(AMD规范)来实现,关于RequireJS的详细说明参考:http://www.requirejs.org/ 接下来我们介绍在WeX5

  • 本文向大家介绍Python的Flask开发框架简单上手笔记,包括了Python的Flask开发框架简单上手笔记的使用技巧和注意事项,需要的朋友参考一下 最简单的hello world 之后,访问http://localhost:5000 支持post/get提交 多个url指向 不管post/get使用统一的接收 处理json请求 request的header中 处理时: 获取post提交中的ch