1.为什么需要模块化开发?
当网站越来越复杂的时候,很容易遇到以下两个问题:
- 命名冲突
- 文件依赖
js语言本身在解决这两个问题时有局限,而使用框架协助模块化开发就是很好的解决办法
2.模块化解决问题的原理
- 职责单一:每个模块实现单一的职责
- 匿名函数注入依赖:保证模块的独立性,也使得模块之间的依赖关系变得明显
3.seaJs的基础语法
<!--1.引入sea.js框架-->
<script src='./sea.js'>
<!-2.引入的第一个js文件为入口函数-->
seajs.use('./main.js');
seajs.use('./main.js',function(info){
console.log('info是main.js返回的数据,我是回调函数');
});
define(function(require,exports,module){
var add = require('./add.js');
<!-5.将add方法暴露给调用此模块的文件-->
module.exports.add = add;
exports.add = add;
})
4.配置
seajs.config({
base:'../myfolder',
alias:{
"jquery": "jquery/jquery/1.10.1/jquery.js"
}
})
5.易错点:路径
以./或../开头的是相对路径,相对于require所在模块的路径;
不以两者开头的路径,会相对于模块的基础路径解析(配置项中的base)
若未配置,根路径默认为sea.js所在的路径,若有多个版本的sea.js文件,以sea.js所在的文件夹seajs为根路径