modulejs源码阅读笔记

https://github.com/eccued/modulejs

modulejs是一款比seajs、commonjs更加简洁、小巧的javascript模块化开发管理工具。 

1、进入页面执行runModuleJS方法,注册事件,读取缓存。其中的hookReadyFun方法,是监听模块是否都OK的。每加载完一个模块(网络下载完,会自动执行,而模块的方法名是define方法,define方法会发布module_ready的方法),都会回调次方法,会checkDepts,检查所有的模块是否准备OK。如果OK,则会执行入口Init方法。

2、define方法,modulejs定义此方法,所以加载完之后会自动执行,进入该方法。该方法主要作用是,解析依赖(使用正则表达式解析require("XX")),将所依赖的模块都记录下来,保存在当前模块的dependencies中。将该模块保存在全局变量cfg.modules中,然后发布该方法已经准备OK的消息。

3、require方法。这个是模块依赖方法,在自己的业务模块中都会使用到,这个require,除了上面根据这个关键词做正则,解析模块外,还有一个重要的作用就是从全局变量即所有的模块变量cfg.modules中,返回需要加载的模块的所有的export方法,这样的话,require的对象当中,就拥有需要加载的模块的所有的暴露的方法了。

4、loadModule,该方法就是加载js的方法了。使用script标签去加载js,无须监听加载结果,因为自动会执行,js的define方法,然后会触发module_ready消息。

5、checkDeps方法,在js加载外,发布module_ready消息的时候,会执行该方法,校验方式就是每一次会检查入口文件关联的所有的模块。直到全部OK已经加载完成,然后去执行入口方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值