Seajs - JS模块化简介

个人笔记:
一、为什么模块化,非模块化带来的三大问题?

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

问题一:命名冲突
命名冲突解决一:【命名空间】
优点:可以降低冲突

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

建议:也不建议使用

问题二:性能问题?
问题:新的页面,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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值