1. 云栖社区>
  2. 技术文集>
  3. 列表>
  4. 正文

LABjs、RequireJS、SeaJS 哪个最好用?为什么?

作者:用户 来源:互联网 时间:2016-10-29 13:35:53

requirejs插件模块性能优化seajs差异通用模块封装requirejs使用requirejs实现原理自动加载器RequireJS入门CommonJS规范requirejs使用教程

LABjs、RequireJS、SeaJS 哪个最好用?为什么? - 摘要: 本文讲的是LABjs、RequireJS、SeaJS 哪个最好用?为什么?, LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步并行加载,Blocking 是指同步等待执行。LABjs

LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步并行加载,Blocking 是指同步等待执行。LABjs 通过优雅的语法(script 和 wait)实现了这两大特性,核心价值是性能优化。LABjs 是一个文件加载器。

RequireJS 和 SeaJS 则是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更简单自然。

模块加载器一般可降级为文件加载器用,因此使用 RequireJS 和 SeaJS,也可以达成 LABjs 的性能优化目的。

RequireJS 和 SeaJS 都是很不错的模块加载器,两者区别如下:

1. 两者定位有差异。RequireJS 想成为浏览器端的模块加载器,同时也想成为 Rhino / Node 等环境的模块加载器。SeaJS 则专注于 Web 浏览器端,同时通过 Node 扩展的方式可以很方便跑在 Node 服务器端

2. 两者遵循的标准有差异。RequireJS 遵循的是 AMD(异步模块定义)规范,SeaJS 遵循的是 CMD (通用模块定义)规范。规范的不同,导致了两者 API 的不同。SeaJS 更简洁优雅,更贴近 CommonJS Modules/1.1 和 Node Modules 规范。

3. 两者社区理念有差异。RequireJS 在尝试让第三方类库修改自身来支持 RequireJS,目前只有少数社区采纳。SeaJS 不强推,而采用自主封装的方式来“海纳百川”,目前已有较成熟的封装策略。

4. 两者代码质量有差异。RequireJS 是没有明显的 bug,SeaJS 是明显没有 bug。

5. 两者对调试等的支持有差异。SeaJS 通过插件,可以实现 Fiddler 中自动映射的功能,还可以实现自动 combo 等功能,非常方便便捷。RequireJS 无这方面的支持。

6. 两者的插件机制有差异。RequireJS 采取的是在源码中预留接口的形式,源码中留有为插件而写的代码。SeaJS 采取的插件机制则与 Node 的方式一致:开放自身,让插件开发者可直接访问或修改,从而非常灵活,可以实现各种类型的插件。

还有不少细节差异就不多说了。

总之,SeaJS 从 API 到实现,都比 RequireJS 更简洁优雅。如果说 RequireJS 是 Prototype 类库的话,则 SeaJS 是 jQuery 类库。
作者:玉伯
链接:http://www.zhihu.com/question/20342350/answer/14828786



以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有 的相关内容,欢迎继续使用右上角搜索按钮进行搜索requirejs , 插件 , 模块 , 性能优化 , seajs , 差异 , 通用模块封装 , requirejs使用 , requirejs实现原理 , 自动加载器 , RequireJS入门 , CommonJS规范 requirejs使用教程 seajs requirejs、seajs和requirejs区别、requirejs seajs 区别、requirejs和seajs、seajs与requirejs,以便于您获取更多的相关知识。

javascript-关于JS引用冲突的问题

...决方案六: 挺简单的,你用引入一个amd管理器,什么requirejs,seajs,esl等等都行,想用哪个版本用哪一个,而且跟第三方引入的完成没有冲突.....但是一般来说,你引用个最新的就好。 解决方案七: var $6 = $;var $10 = $;引入jq...

LABjs、RequireJS、SeaJS的区别_Seajs

...,核心价值是性能优化。LABjs 是一个文件加载器。 二、RequireJS 和 SeaJS 则是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更简单自然。模块加载器也可降级为文件加载器用,因此使用 Requi...

前端JSer装逼手册

...pack他们叒说:FIS3约不约。。。。  § 模块化方案无论是RequireJS (AMD)SeaJS (CMD)KMD.js (KMD)Browserify (CommonJS)...最后都庆幸回归到npm + Webpack什么。SystemJS。有完没完...  § MV*框架 / 技术栈 / 大型框架 Backbone每个人都有一段不堪回首的...

近几年前端技术盘点以及 2016 年技术发展方向(转)

...相互争斗,产出了 AMD、CMD、KMD 等规范,也衍生了 SeaJS、RequireJS 等模块化工具。前端在这一年很有跳跃感。 13 年,爆发式增长,百花齐放 规范和标准上有不少产出。Web Components 的出现给前端开发开辟了新思路;WebDriver 规范的...

LABjs、RequireJS、SeaJS的区别

...,核心价值是性能优化。LABjs 是一个文件加载器。 二、RequireJS 和 SeaJS 则是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更简单自然。模块加载器也可降级为文件加载器用,因此使用 Requi...

前三篇
后三篇