Seajs的学习笔记


Posted in Javascript onMarch 04, 2014

1.简介

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

2.优缺点

优点:
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.如何使用?

<script src="../js/examples-master/sea-modules/seajs/seajs/2.1.1/sea.js"></script>
<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 $;
});
Javascript 相关文章推荐
Exitjs获取DataView中图片文件名
Nov 26 Javascript
node.js中的events.emitter.once方法使用说明
Dec 10 Javascript
node.js中的fs.exists方法使用说明
Dec 17 Javascript
js+html5实现canvas绘制简单矩形的方法
Jun 05 Javascript
详细解读JavaScript编程中的Promise使用
Jul 27 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
Feb 26 Javascript
Vue.js实现简单动态数据处理
Feb 13 Javascript
easyui combogrid实现本地模糊搜索过滤多列
May 13 Javascript
详解vue.js之props传递参数
Dec 12 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
Jan 15 Javascript
解决LayUI数据表格复选框不居中显示的问题
Sep 25 Javascript
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
文本域中换行符的替换示例
Mar 04 #Javascript
为jquery的ajaxfileupload增加附加参数的方法
Mar 04 #Javascript
Document.location.href和.replace的区别示例介绍
Mar 04 #Javascript
LABjs、RequireJS、SeaJS的区别
Mar 04 #Javascript
js的Boolean对象初始值示例
Mar 04 #Javascript
js动态拼接正则表达式的两种方法
Mar 04 #Javascript
8个实用的jQuery技巧
Mar 04 #Javascript
You might like
PHP中PDO的错误处理
2011/09/04 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
2014/11/17 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
PHP全局变量与超级全局变量区别分析
2016/04/01 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
php多进程应用场景实例详解
2019/07/22 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
jquery构造器的实现代码小结
2011/05/16 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
H5手机端多文件上传预览插件
2017/04/21 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
vue mounted组件的使用
2018/06/18 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
个人考核材料
2014/05/15 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
大学入学感言
2015/08/01 职场文书
开学第一天的感想
2015/08/10 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
如何用JS实现简单的数据监听
2021/05/06 Javascript