当前位置: 移动技术网 > IT编程>脚本编程>Seajs > Seajs是什么及sea.js 由来,特点以及优势

Seajs是什么及sea.js 由来,特点以及优势

2018年04月26日  | 移动技术网IT编程  | 我要评论

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 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 $;
});

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

由来:

在软件开发过程中,模块化编程思想已经习以为常了,模块化编程不仅仅给开发团队带来效率方面上的好处,还能够让开发的项目或者产品维护成本大大降低。
那么,在web开发过程中js脚本语言已经不可或缺了,通过js脚本语言能够带来更加舒适的人机交互和用户体验。但是,js脚本的使用过程中也会有出现引用依赖的混乱,那么js脚本语言的模块化思想势必会得到大家广泛的认可,在这样的一个背景下,淘宝前端工程师玉伯带来了seajs脚本语言,让模块化编程思想进入到js脚本的世界里。

特点:

seajs是一个遵循commonjs规范的javascript模块加载框架,可以实现javascript的模块化开发及加载机制。与jquery等javascript框架不同,seajs不会扩展封装语言特性,而只是实现javascript的模块化及按模块加载。seajs的主要目的是令javascript开发模块化并可以轻松愉悦进行加载,将前端工程师从繁重的javascript文件及对象依赖处理中解放出来,可以专注于代码本身的逻辑。seajs可以与jquery这类框架完美集成。使用seajs可以提高javascript代码的可读性和清晰度,解决目前javascript编程中普遍存在的依赖关系混乱和代码纠缠等问题,方便代码的编写和维护。
seajs本身遵循kiss(keep it simple, stupid)理念进行开发,其本身仅有个位数的api,因此学习起来毫无压力。在学习seajs的过程中,处处能感受到kiss原则的精髓——仅做一件事,做好一件事。

优势:从一个例子中来看seajs优势,

传统模式:

var m1={
run:function(){
alert('m1');
m2.run();
}
}
 
var m2={
 
run:function(){
alert('m2');
}
}
 
<script src="./m2.js"></script>
<script src="./m1.js"></script>

使用seajs之后:

//init.js
define(function(require, exports, module) = {
 
var m1=require('m1');
 
exports.init=function(){
m1.run();
}
});
 
//m1.js
define(function(require,exports,module)={
var m2=require('m2');
 
exports.run=function(){
alert('m1');
m2.run();
}
});
 
define(function(require,exports,module)={
exports.run=function(){
alert('m2');
}
});

<script src="./sea.js"></script>
<script>
 seajs.use('./init', function(init) {
  init.init();
 });
</script>

通过两个简单的实例能够看出使用seajs之后代码的模块化非常清晰,并且在html页面中仅仅引用一个./sea.js文件并且仅仅调用init即可,具体init后面实现的逻辑对用户是透明的。

通过这篇博客能够对seajs脚本语言有所了解,后面文章介绍利用seajs编写模块。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网