SeaJS遵循CMD规范的JS模块加载框架

发布于 2017-06-12 10:25:50 字数 2316 浏览 2240 评论 0

SeaJS 是一个适用于 Web 浏览器端的模块加载器。使用 SeaJS,可以更好地组织 JavaScript 代码。

SeaJS本身遵循KISS(Keep It Simple, Stupid)理念进行开发,其本身仅有个位数的API,因此学习起来毫无压力。在学习SeaJS的过程中,处处能感受到KISS原则的精髓——仅做一件事,做好一件事。

也许你已注意到右边的美图:蓝天碧海之间,沙滩爱侣相伴。无论生活还是工作,我们都期望能享受如此良辰美景。SeaJS在努力让我们的生活变得更美好。

快速入门

在 SeaJS 的世界里,一个文件就是一个模块。所有模块都遵循 CMD 规范,我们可以像在 Node 环境中一样来书写模块代码:

define(function(require, exports, module) {
  var $ = require('jquery');

  exports.sayHello = function() {
    $('#hello').toggle('slow');
  };
});

将上面的代码保存为 hello.js,然后就可以通过 SeaJS 来加载使用了:

seajs.config({
  alias: {
    'jquery': 'http://modules.seajs.org/jquery/1.7.2/jquery.js'
  }
});

seajs.use(['./hello', 'jquery'], function(hello, $) {
  $('#beautiful-sea').click(hello.sayHello);
});

赶紧点击右上角的美图,与模块世界打个招呼吧 ^_^

为什么使用 SeaJS

SeaJS 追求简单、自然的代码书写和组织方式,具有以下核心特性:

  • 简单友好的模块定义规范:SeaJS 遵循CMD规范,可以像Node.js一般书写模块代码。
  • 自然直观的代码组织方式:依赖的自动加载、配置的简洁清晰,可以让我们更多地享受编码的乐趣。

SeaJS 还提供常用插件,非常有助于开发调试和性能优化,并具有丰富的可扩展接口。

核心特性

无论是中小型站点,还是大型复杂应用,使用 SeaJS,都可以让我们的工作变得更轻松愉悦。SeaJS 具有以下核心特性:

  • 简单一致的模块格式。
  • 依赖的自动管理。
  • 脚本的异步并行加载。
  • 丰富的插件。
  • 友好的调试。

SeaJS 带来的最大好处是:提升代码的可维护性。上面的每一项特性,在使用文档中都会有详细阐述。如果一个网站的 JS文件超过 3 个,就适合用 SeaJS 来组织和维护代码。涉及的 JS 文件越多,SeaJS 就越适合。

SeaJS 追求的是更简单、自然的代码书写和组织方式。

兼容性

SeaJS 兼容所有 PC 和 Mobile 端的主流浏览器:

IE 5.5+           ✔
Chrome 3+         ✔
Firefox 2+        ✔
Safari 3.2+       ✔
Opera 10+         ✔

下载SeaJS

所有版本的 zip 包请在这里下载,解压后,目录说明如下:

  • dist -- sea.js 等压缩好的文件,直接可用
  • docs -- 使用文档
  • lib -- 给 Node.js 用的版本
  • src -- 源码
  • tests -- 测试集
  • tools -- 压缩等工具,可查看 build.xml 得到源码合并顺序
  • Makefile -- 可执行构建、测试等命令

使用SeaJS

使用 SeaJS,可以规范模块的书写格式、能自动处理模块的依赖,还非常有助于代码组织、开发调试和性能优化。SeaJS 期待能给你提供简单、极致的模块化开发体验。

SeaJS 遵循MIT 协议,无论个人还是公司,都可以免费自由使用。

相关链接

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

沧笙踏歌

文章 0 评论 0

山田美奈子

文章 0 评论 0

佚名

文章 0 评论 0

岁月无声

文章 0 评论 0

暗藏城府

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文