seajs笔记

seajs的作者是玉伯,具体好处优点等详见官方网址

介绍

1 模块定义define

define(function(require,exports,module){

	//require 引入需要的模块如jquery等

	//var $ = require('./jquery');



	//exports可以把方法或属性暴露给外部

	exports.name = 'hi';



	exports.hi = function(){

		alert('hello');

	}



	//module提供了模块信息

});

2 使用定义好的模块seajs.use

<!doctype html>

<html>

<head>

<title>SeaJs Test</title>

<meta charset="UTF-8">



<script type="text/javascript" src="seajs/sea.js"></script>



<script type="text/javascript">

	//第一个参数是模块标识,即要使用模块的路径,这里是t1.js

	//第二个参数是一个回调函数

	seajs.use('./js/t1',function(t){

		t.hi();

	});

</script>

</head>

<body>



</body>

</html>

3 加载依赖项require

//名称必须是require,可以理解为一个关键词一样,接收一个参数

var $ = require('./jquery');

4 向外部提供接口exports

define(function(require,exports,module){

	//exports可以把方法或属性暴露给外部

	exports.name = 'hi';



	exports.hi = function(){

		alert('hello');

	}

});

5 当前模块信息module

  这里只介绍几个基本的,具体可以参考https://github.com/seajs/seajs/issues/242

  1 module.id 模块标识

  2 module.uri 根据模块系统的路径解析规则得到的模块绝对路径

  3 module.dependencies 表示当前模块的依赖列表,是一个数组

  4 module.status 当前模块的状态,是一个数值

示例

代码结构

seajs笔记

代码文件

index.html

<!doctype html>

<html>

<head>

<title>SeaJs Test</title>

<meta charset="UTF-8">



<script type="text/javascript" src="seajs/sea.js"></script>



<script type="text/javascript">

	seajs.use('./js/init',function(init){

		init.init();

	});



	seajs.config({

	  charset: 'utf-8'

	});

</script>

</head>

<body>

	<div class="main">

		<h1>信息</h1>

		<ul>

			<li id="s1"></li>

			<li id="s2"></li>

			<li id="s3"></li>

		</ul>

	</div>

</body>

</html>

 init.js

define(function(require,exports,module){

	var man = require('./man');

	var css = require('../css/main.css');



	var $ = function(id){

		return document.getElementById(id);

	}



	exports.init = function(){

		var s1 = $('s1');

		var s2 = $('s2');

		var s3 = $('s3');



		var name = man.getName();

		var age = man.getAge();

		var msg = man.say();



		s1.innerHTML = name;

		s2.innerHTML = age;

		s3.innerHTML = msg;

	}

});

 man.js

define(function(require,exports,module){

	var msg = require('./msg');



	var _name = 'tom';

	var _age = '20';



	exports.myName = _name;



	exports.say = function(){

		return msg.getMsg();

	}



	exports.getName = function(){

		return _name;

	}



	exports.getAge = function(){

		return _age;

	}

});

 msg.js

define(function(require,exports,module){

	var _msg = 'not set msg!';



	exports.setMsg = function(msg){

		_msg = msg;

	}



	exports.getMsg =function(){

		return _msg;

	}

});

 main.css

*{

	font-size: 18px;

	font-family: "Tahoma,Arial,Helvetica,sans-serif";

}

.main{

	width: 500px;

	height: 300px;

	margin: 50px auto;

}

 

你可能感兴趣的:(seajs)