使用RequireJS优化JavaScript引用代码的方法
requirejs是一个提高你的javascript代码速度和质量的有效方法,同时它还让你的代码更容易阅读和维护。
在本文中,我会为你介绍requirejs和应该如何使用它。我们讨论引入文件和定义模块,甚至还会接触优化方面的知识。
简单的说,require.js是一个脚本载入程序,允许你把你的javascript代码独立成文件和模块,同时管理每个模块间的依赖关系。
引入文件
在开始使用requirejs前,我们需要先下载它的库和asynchronous module definition(amd)文件。然后在文档头部链接到require.js文件,就如:
<script src="require.js" data-main="main"></script>
你可能会问data-main属性是什么,使用requirejs意味着当你在文档的头部调用require的时候,你同时也会链接到你的javascript应用的主文件,在这个例子里面就是main.js(请注意,requirejs自动添加.js后缀到文件名的后面)
在main.js文件里面,需要为requirejs做配置,载入模块和定义一个base路径,以便在引入文件时使用。
require函数
requirejs使用一个简单的require函数去导入脚本,在这个例子里面,requirejs导入的是jquery:
require(["jquery"], function($) { $(‘#mydiv”).html(‘hello this is requirejs talking”); });
requirejs的一个优点就是,它非常容易阅读。在上面的代码中,我们可以看到,首先require函数抓取名字为jquery.js的文件,然后给一个匿名函数传入$作为参数,当这个动作完成后,你就可以任意使用jquery的代码了。
现在,你的代码中一般不会包含jquery.js文件的jquery库,就如大多数的插件和框架,我们通常选择从他们的github或者google cdn中导入进来,这样我们就需要配置他们的真正路径:
require.config({ paths: { "jquery": "https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js" } });
这就是说你可以通过google导入jquery(请注意我在这个例子里面使用的是"jquery"名称,你可以使用任何你喜欢的名称)
定义模块
使用amd模式,意味着我们的代码可以结构化成为模块;这些模块实现应用中的某些功能。你可以在一个模块中只放两行代码或者100行代码,这完全决定于你想通过模块实现什么功能。
定义模块,我们可以这样写:
define(function () { function add (x,y) { return x + y; } });
这个里面里面,我定义了一个add函数,并且没有任何依赖,但是如果这个函数需要jquery才能正常工作,定义代码可能就是这样:
define([‘jquery'], function () { function place(mydiv) { $(mydiv).html(‘my sample text'); } });
使用这种语法,我们告诉javascript首先导入jquery,然后运行代码,这样任何时候都能使用jquery。我们也可以使用在javascript文件中定义的模块,不仅限于框架或者插件。
优化
就像你看到的一样,requirejs是一个强大的工具,去把你的文件组织成模块,并且在你需要的时候才导入。其中的缺点就是大量的javascript文件的时候,也需要大量的导入时间,所以requirejs包含了一个optimizer优化器去收集所有文件的数据并把它放到一个压缩文件里面。
总的来说,requirejs是一个很好的工具去组织和优化你web应用中的javascript。
推荐阅读
-
JavaScript使用300行代码解决汉字转拼音的方法详解
-
javascript引用对象的方法代码_javascript技巧
-
JavaScript使用三种方法定义函数的实现代码分析
-
使用RequireJS优化JavaScript引用代码的方法
-
javascript引用对象的方法代码_javascript技巧
-
使用requirejs的php项目中,如果php返回一些javascript代码,要放在哪里?
-
javascript cookie操作类的实现代码小结附使用方法_javascript技巧
-
使用RequireJS优化JavaScript引用代码的方法
-
使用SyntaxHighlighter实现HTML高亮显示代码的方法_javascript技巧
-
JavaScript使用300行代码解决汉字转拼音的方法详解