遇到的问题:
- 冲突
函数名字一样;
解决方法:
加命名空间,把方法放到对象的属性里,可降低冲突,但无法避免。
- 性能
加载大插件,但只需用一个方法,全部加载的话降低性能。
解决方法:
拆分成小方法,按需引入。但是页面引入很多js文件,会引入依赖问题。
- 依赖
加载js的顺序依赖问题。
JS模块化
seajs
使用:
- 引入sea.js库;
- 如何变成模块 define()
define(function(require,exports,module){//参数固,写法不变
function tab(){
alert(123);
}
})
- 如何调用模块exports seajs.use
define(function(require,exports,module){//参数固,写法不变
//exports对外的接口
function tab(){
alert(123);
}
exports.tab=tab;
})
//seajs.use-页面调用模块-第一个参数:模块的地址,第二个参数:地址加载成功后的回调函数。
seajs的默认根目录:sea.js
seajs.use(‘./js/test1.js’,function(ex){//回调的参数,就是模块中的exports
ex.tab();
});
- 如何依赖模块 require