requireJs的配置详解

1.首先介绍下requirejs到底是做什么的有什么作用,这是大家关心的话题。

官网是这样介绍require介绍的。RequireJS是一个JavaScript库和文件加载器,用于管理JavaScript文件之间的依赖关系和模块化编程。它还有助于提高代码的速度和质量。本教程旨在让您熟悉RequireJS及其各种功能以及应用。简单的认为就是以前没有requirejs的是时候很多js文件通过script标签引入的这样会有很多script标签和文件在浏览器页面里面显示,这样加载更多的js文件多次请求服务器跟服务器来带了一定的压力,并且把js文件暴露在浏览器里面,这也跟那些不法分子得到进而攻击网站的入口,也是不安全的。requirejs最大的优点是不会污染全局环境。

 

2.学习requirejs要了解什么,学习什么?

您应该对HTML、CSS、JavaScript、文档对象模型(DOM)和任何文本编辑器有一个基本的了解。由于我们将使用RequireJS开发一个基于web的应用程序,如果您了解internet和基于web的应用程序是如何工作的,那就更好了。懂得了这些我们在sky8g网站将教会你一步一步学习,并应用requirejs

 

3.requirejs的配置参数的详解。

requirejs主要的参数有:baseUrl,paths,skim,map,deps,exports等等

第一步,原始例子 

接下来我们创建我demo项目,首先我新建了requirejs目录,在目录下面又创建js目录和sky8g.html文件,然后我们又在js目录下放入我们需要的库文件jquery.js

require.js,最后我们在创建一个自定义的js文件命名为custom.js,在这个文件里面我们可以自定义自己的js代码。创建的目录如下图所示:

 

以上我们假如不引进requirejs文件,调用jquery应该如上图显示那样。代码如下:

保存执行sky8g.html运行结果如下

以上我们没有requirejs,同理我们如果想要在引入自定义的custom.js文件,还要在head标签里面加入如下代码

第二步,requireJs例子 

下面我们来介绍下requirejs的应用的妙处。我们将引入require.js代码,如果本地没有requirejs文件则去官网点击下载

我们首先在sky8g.html文件里写入的代码如下:

为了让学员学习更加轻松便于理解,我们把脚本文件放入html里面省略了  <script data-main=”main” src=”js/require.js”></script>里面的data-main属性,不在创建main.js文件了。

(1)baseUrl:指的是命名js的文件的根路径例如这里是根路径为js目录。

(2)paths:指的是引入js文件,这里我们引入 了连个js文件,一个是js/jquery.js 和js/custom.js文件这两个。

其中sky8g被称为命名的模块ID,这里的jquery模块ID重申一下,如果你用另一个模块名称(例如lib / jquery)引用jQuery,你可能会收到错误'lib / jquery'这个例子不起作用

因为jQuery使用’jquery’而不是’lib / jquery’的名称注册自己。通常,不鼓励在define()调用中显式命名模块,但jQuery有一些特殊的约束

接下来我们在看看custom.js文件的代码,代码如下

这里面的代码我们依赖jquery,打印div的内容。保存最后我们在浏览器里执行sky8g.html文件

这样我们使用了requirejs。

 

第三步,配置require.js:config方法

 

有些库不是AMD兼容的,这时就需要指定shim属性的值。shim可以理解成“垫片”,用来帮助require.js加载非AMD规范的库。

define和require这两个定义模块、调用模块的方法,合称为AMD模式。它的模块定义的方法非常清晰,不会污染全局环境,能够清楚地显示依赖关系。

AMD模式可以用于浏览器环境,并且允许非同步加载模块,也可以根据需要动态加载模块。

如第二步我们使用的custom.js文件就是AMD规范标准。接下来我们在讲一讲非标准的AMD的代码。这样我们就可以使用参数shim配置了。

 

修改custome.js文件代码如下:

在修改配置文件代码:

(3)shim:配置依赖性关系。如果某一个模块不是AMD模式定义的,就可以用shim属性指定模块的依赖性关系和输出值。

(4)deps:custom.js文件依赖的模块这里我们依赖jQuery进行操作

(5)exports:导出的接口,这里我们要导出的是custom.js文件里面对象 obj

希望以上都对于你有帮助。

 

如果有不懂的地方请留言,SKY8G网站编辑者专注于研究IT源代码研究与开发。希望你下次光临,你的认可和留言是对我们最大的支持,谢谢!

上一篇: Magento 2 layout.xml布局详解

下一篇: PHP | strchr()函数

登录 评论
avatar