操刀 requirejs,自己动手写一个

2017-01-09 19:20:25来源:作者:人点击

前沿 写在文章的最前面

这篇文章讲的是,我怎么去写一个 requirejs 。

去 github 上fork一下,顺便star~

requirejs,众所周知,是一个非常出名的js模块化工具,可以让你使用模块化的方式组织代码,并异步加载你所需要的部分。balabala 等等好处不计其数。

之所以写这篇文章,是做一个总结。目前打算动一动,换一份工作。感谢 一线码农 大大帮忙推了携程,得到了面试的机会。

面试的时候,聊着聊着感觉问题都问在了自己的“点”上,应答都挺顺利,于是就慢慢膨胀了。在说到模块化的时候,我脑子一抽,凭着感觉说了一下requirejs实现的大概步骤,充满了表现欲望,废话一堆。侥幸不可能当场让我写一遍,算是过了,事后尝试了一下,在这里跟大家分享一下我的实现。

结构划分

/**  * 默认核心载体  */ export default {  /***  版本*/  ver: "0.0.1",  /*** 模块定义名称*/  defineName: "define",  /*** 程序入口函数*/  requireName: "require",  /*** 暴露的全局名称,可用于配置*/  coreName: "requirejs",  /*** 根目录,入口文件目录*/  rootUrl: "",  /*** 依赖模块存储字典*/  dict: {  // 模块字典 {key:string,value:promise}} };


View Code
core,主要存的是一些配置信息,和模块的字典,比较简单。





总结、Github

写到这里,就已经结束了。本文讲了对于requirejs,我的实现思路,列举了可能遇到的问题,及我的解决方式。希望能给大家的学习提供点帮助。

去 github 上fork一下,顺便star~

上面是github的地址,求star啊,作为一个虚荣的人,我对这个很看重的,哈哈,也就这点追求了。再次感激 一线码农 大哥的推荐,还有 linkFly 的经验指导。

// (function(){
var list=$(".mulumulu");
var infos=[];
$.each(list,function(index,item){
var self=$(item);
var id=self.attr("id");
var key=self.attr("data-key");
var level=self.attr("data-level");
var obj={
title:key,
url:'#'+id,
list:[]
};
if(level==1){
infos.push(obj);
}else if(level==2){
infos[infos.length-1].list.push(obj);
}
});
$.mulu(infos).hide();
})();
// ]]>

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台