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如何使用?
一段代码教新手一目了然,快速上手!
Seajs就是如此简单,快来深入学习吧!
大家也可以加我的前后端开发讨论Q群:541094575
一、为什么模块化,非模块化带来的三大问题?
–>非模块化会产生:命名冲突、性能问题、依赖
问题一:命名冲突
命名冲突解决一:【命名空间】
优点:可以降低冲突
缺点: 无法避免冲突 不方便引用 建议:也不建议使用
问题二:性能问题?
问题:新的页面,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
相关文章推荐
- javascript 实现jsonp
- js的get set, 构造函数,匿名函数,prototype(原型)
- JavaScript中的for in (1)
- 【bzoj 1013】 [JSOI2008] 球形空间产生器sphere
- button按钮通过JSP给table添加下拉列表
- 遍历 JavaScript 数组
- cxf web service 解决返回的json格式数据乱码问题
- JS中window.showModalDialog()详解 HTML DOM open() 方法
- js闭包
- json多层解析,和风天气数据源,volley请求
- jstl el
- 用js判断复选框(checkbox)是否选中的问题
- json&jsonp
- javascript限制只能输入数字
- 【总结】C++、C#、Java、Javascript、Python中引用的区别
- JS stopPropagation()
- javaScript基本用法
- js 获取详细地理位置 利用百度地图偏差的问题
- 编写高质量JavaScript代码的一些建议
- 使用 jackson 解析 json 演示样例