从ios开发到android开发,随着公司的业务需求,之后的工作重心又要开始向网站方向转移,网站开发基于c#,这么说来,我最起码也接触了不少语言了,从swift到Java,.net网站开发最起码也要学两种语言,javascript前端语言和c#后台语言,.net的基础框架也已经开源了,希望c#能够在国内更好的发展,虽然java在某些方面还是占据着一些优势。说了这么多,今天重点并不是后台技术,而是聊聊前端框架—requireJS。
requireJS
1.简介
requirejs是一个JavaScript文件和模块加载器。requireJS允许你把你的javascript代码独立成文件和模块,同时管理每个模块间的依赖关系。RequireJS的目标是鼓励代码的模块化,它使用了不同于传统script标签的脚本加载步骤。使用RequireJS加载模块化脚本将提高代码的加载速度和质量。
2.特点
1.模块化异步加载,加快加载时间,提高页面打开效率。
2.模块化设置,避免页面中出现一大堆js导入
3.提供依赖加载,即js文件加载顺序可以设置。
3.使用
requirejs源码github下载地址
首先,我们的js写到在require的config中设置,页面加载将会按需加载js。页面中我们只需设置require的main入口即可。
<script src="js/require.js" data-main="js/main"></script>
其中代码中的js为js文件夹,main默认为main.js,不需要写全。
require.config在main.js中设置。具体config中我们可以设置js文件路径,并给文件启一个别名,使用的时候我们就可以直接使用这个别名。
require.config({
baseUrl: "js/lib",
shim: {
'underscore':{
exports: '_'
},
'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
}
},
paths: {
"jquery": "jquery.min",
"underscore": "underscore.min",
"backbone": "backbone.min"
}
});
设置代码如上,baseUrl为基本的路径,paths为在基本路径上的文件地址,如jquery.min,其实际的路径地址为js/lib/jquery.min.如果不设置baseUrl ,我们就要设置全路径,jquery就是对应于该路径的别名。
shim设置了不符合cmd规范的js,因为requirejs按模块加载,需要规范写法即cmd规范,即以js文件中需要定义一个模块类似代码如下:
define(['jQurey'],funcation($){
return {
func:func
}
});
而不按照cmd规范的,我们都直接在js中写funcation供外部调用。
当然对于定义了的模块当然就需要调用了,requirejs如何调用呢!我们将上面定义的模块js保存到demo.js中,设置paths,给它起的别名为demo
require(['demo'],funcation(demo){
demo.func();
});
上述就是调用的过程可以写在main.js中,按需调用即可。