admin 发表于 2017-10-27 15:52:17

利用requirejs实现前端模块化开发hao123项目实战


课程方针:
操纵requirejs实现前端模块化开辟hao123项目实战
顺应人群:
前端开辟职员
课程先容:
What is RequireJS?   在说明什么是RequireJS之前,不能不提的就是Javascript模块化历史的布景。实在在早期,javascript作为一门新兴的剧本说话出现,有着庞大的愿景,它并不是作为一门仅仅针对客户端设想的说话。只是说后来web利用的风行,javascript作为阅读器端剧本说话而敏捷传开,加上Netscape和微软的合作将其过早的标准化。所以就致使了JS的诸多缺点,其中一个就是模块化(可是你可以惊奇地发现实在javascript有将import,export等作为保存字,说明设想的时辰实在是有斟酌的,新的标准es6也让原生支持模块化了)。然后随着web利用越来越复杂,嵌入的javascript代码越来越多,还有node的兴起,模块化编程就酿成了必须。
   所以就有了后来Dojo工具包和Google的Closure库支持的模块系统。还有两个很是通用的标准标准,CommonJS和AMD。这里就不展开说了,我们只需要晓得,实现CommonJS标准的API是同步加载模块的,而实现AMD标准的API是则是异步加载模块。
   所以理论上来说,AMD标准的非阻塞加载加倍合适阅读器端。而RequireJS就是AMD标准的最好实现。抄一段官方文档对RequireJS的描写:
   RequireJS 是一个JavaScript模块加载器。它很是合适在阅读器中利用, 它很是合适在阅读器中利用,但它也可以用在其他剧本情况, 就像 Rhino and Node. 利用RequireJS加载模块化剧本将进步代码的加载速度和质量。
Why RequireJS?   所以,晓得了RequireJS是干什么的,也差不多晓得为什么我们要利用RequireJS了。不外还是总结一下用RequireJS的益处吧。
[*]异步“加载”。我们晓得,凡是网站城市把script剧本的放在html的最初,这样便可以避免阅读器履行js带来的页面阻塞。利用RequireJS,会在相关的js加载后履行回调函数,这个进程是异步的,所以它不会阻塞页面。[*]按需加载。经过RequireJS,你可以在需要加载js逻辑的时辰再加载对应 的js模块,这样避免了在初始化网页的时辰发生大量的请求和数据传输,也许对于一些人来说,某些模块能够他底子就不需要,那就显得没有需要。[*]加倍方便的模块依靠治理。相信你已经一定碰到过由于script标签顺序题目而致使依靠关系发生毛病,这个函数未界说,阿谁变量undefine之类的。经过RequireJS的机制,你能确保在一切的依靠模块都加载今后再履行相关的文件,所以可以起到依靠治理的感化。[*]加倍高效的版本治理。想一想,假如你还是用的script剧本引入的方式来引入一个jQuery2.x的文件,然后你有100个页面都是这么援用的,那当你想换成jQuery3.x,那你就不能不去改这100个页面。可是假如你的requireJS有在config中做jQuery的path映照,那你只需要改一处地方即可。[*]固然还有一些诸如cdn加载不到js文件,可以请求当地文件等别的的优点,这里就不逐一罗列了。
RequireJS 利用需要在页面中引入的文件 利用RequireJS,你只需要引入一个require.js即可。需要说明的是,一个比力好的理论,就是你的页面上面应当也只需要经过\标签引入这一个js即可。然后你这个页面的一切营业逻辑只需要在main.js里面写(data-main属性感化前面会有讲)便可以了。别的援用的依靠怎样办?固然是经过require按需引入啊!
Require根基概述实在Requirejs全部源文件包括正文就2000来行,其对表面露的变量实在就三个,requirejs,require,define。
这其中requirejs 只是require的一个体名,目标是假如页面中有require别的实现了,你还是能经过利用requirejs来利用requireJS API的(本文中没有相关抵触,所以还是利用require)。
所以这意味着作为入门,你只需要把握require,require.config,define这三样便可以了。
本文将以先容require,require.config,data-main,define的顺序来先容RequireJS。让比力简单的RequireJS加倍简单,争取让大师只看这篇文章就能用好RequireJS。至于RequireJS是若何处理循环依靠,对于没有实现amd的模块若何经过shim来导出,若何在node中利用等题目。本文并没有说起,具体有需要可以去官方查阅。
旅客,假如您要检察本帖隐藏内容请答复
requirejs template, require sb to do, requirejs入门教程, requirejs 入门, requirejs原理
页: [1]
查看完整版本: 利用requirejs实现前端模块化开发hao123项目实战