seaJS

为什么要前端模块化开发?

代码越来越多时或多人开发的时候,会产生冲突,依赖的问题。

冲突:一般命名冲突时,我们都会使用命名空间,而且命名空间有时候可能名字比较长,调用命名空间下的函数起来不方便,而且这种方法是无法完全避免冲突

依赖:当一个js文件依赖另一个js文件的时候,如果仅仅是一个依赖倒没有什么问题,但是如果后期里,功能修改,发现又要依赖其他js,那就比较难以维护


通过seaJS,引用不同的模块,提供相应的接口,可以避免冲突

比如说有一个模块m1,通过define把普通模块变成sea下面的模块

define(function(require,exports,module){
	exports.sayHi=function(){
		alert('hi');
	}
});
//sea下面的参数名字是默认的,不允许修改的
//exports是对外提供接口的对象

然后再调用此模块

seajs.use('./js/m1.js',function(ex){
    ex.sayHi();
  });
  //通过seajs.use()引入模块,注意,无论在哪里调用这个函数,默认的根目录是sea.js这个文件
  //回调函数可接收一个任意命名的参数,这个参数代表exports对象
由于不同的模块都有自己的接口,通过调用不同的模块,就可以杜绝冲突的问题


接下来说一下模块与模块之间怎实现依赖

假如模块m2依赖模块m1,如m2必须引用m1中的变量"name",可使用require,require是模块之间依赖的接口

m1代码如下

define(function(require,exports,module){
	var name="XJM";
	exports.name=name;
});
m2代码如下

define(function(require,exports,module){
	//注意,这里require调用后返回的就是m1模块的export接口
	var name=require('./module1.js').name;
	exports.sayName=function(){
		alert(name);
	}
});



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值