您的位置:首页 > Web前端 > JavaScript

Seajs - JS模块化简介

2016-04-23 22:22 615 查看
个人笔记:

一、为什么模块化,非模块化带来的三大问题?

–>非模块化会产生:命名冲突、性能问题、依赖

问题一:命名冲突

命名冲突解决一:【命名空间】

优点:可以降低冲突

缺点:    无法避免冲突
不方便引用

建议:也不建议使用


问题二:性能问题?

问题:新的页面,tab(), 再引入common.js文件(里面可能有很多方法,但新的页面可能只用到一个方法)剩下的方法就浪费掉了。

-> 可以用common.js (拆分)->tab.js, drag.js ,trps.js….

但又有新的问题?如果tab.js依赖drag.js那么他们的顺序问题就可能是个问题,各js文件间的依赖性

-> 例子:如果你的tab.js给你的新同事,你的新同事引入tab.js直接用test();方法,发现有问题,你可能就发现tab.js依赖与A.js文件

–> 以上问题,造成了,大家上班的大部分时间都在修改BUG,加班也在所难免了

二、JS模块化

1. 采用第三方的js模块化库:Sea.js

优点:中文,简单,适合中国国情,很多网站在用,如淘宝网

2. 使用模块化解决哪些问题?

解决:命名冲突、性能问题、依赖问题。

3. seajs如何解决?

(1) 引入sea.js的库

(2) 如何变成模块? -define

(3) 如何调用模块? -exports ;-seajs.use

(4) 如何依赖模块? -require

以下来源网络补充:

Seajs是什么及其优缺点&如何使用?

笔记来源于:http://www.aseoe.com/show-12-591-1.html

这篇文章主要介绍了Seajs的相关知识和和学习心得,适合刚接触SeaJS的同学,需要的朋友可以参考下,有更好的新手教程或文档,欢迎推荐、分享!

1.Seajs简介

Seajs,一个Web模块加载框架,追求简单、自然的代码书写和组织方式,:Sea.js 遵循 CMD 规范,模块化JS代码。依赖的自动加载、配置的简洁清晰,可以让程序员更多地专注编码。

2.Seajs优缺点

优点:

1).提高可维护性。

2).模块化编程。

3).动态加载,前端性能优化

缺点:

1).学习文档偏少且混乱,会更改团队使用JS的编写习惯,必须使用模块化编程。

2).不太适合团队目前的情况,多JS文件但少改动,动态加载优势和模块化优势不明显。

3). 需要配套使用SPM工具,JS的打包和管理工具。

2.什么是CMD 和AMD ?

异步模块定义(AMD)是Asynchronous Module Definition的缩写,是 RequireJS 在推广过程中对模块定义的规范化产出。

通用模块定义(CMD)是Common Module Definition的缩写,是SeaJS 在推广过程中对模块定义的规范化产出。

RequireJS 和 SeaJS 都是模块化框架的代表,AMD和CMD,是他们各自定义模块化的方式,大同小异,主要是代码风格和API不同。

3.Seajs如何使用?

一段代码教新手一目了然,快速上手!

<script>
//配置js路径
seajs.config({
alias:{
"jquery":"../examples-master/sea-modules/jquery/jquery/1.10.1/jquery.js"
}
});
//加载模块
seajs.use('../js/seajs/init',function($){
$("#test_div").click(function(){alert(1);});
});
</script>
代码如下:
//init.js
define(function(require,exports,module){
var $ = require('jquery');
return $;
});


Seajs就是如此简单,快来深入学习吧!

大家也可以加我的前后端开发讨论Q群:541094575
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: