关于RequireJS的简单介绍即使用方法


Posted in Javascript onOctober 20, 2016

RequireJS介绍

RequireJS 是一个JavaScript模块加载器。它非常适合在浏览器中使用。使用RequireJS加载模块化脚本将提高代码的加载速度和质量。

兼容性

浏览器(browser) 是否兼容
IE 6+ 兼容 ✔
Firefox 2+ 兼容 ✔
Safari 3.2+ 兼容 ✔
Chrome 3+ 兼容 ✔
Opera 10+ 兼容 ✔

优点

实现js文件的异步加载,避免网页失去响应

管理模块之间的依赖性,便于代码的编写和维护

快速上手

step 1

引入require.js

require()中的依赖是一个数组,即使只有一个依赖,你也必须使用数组来定义

第二个参数是回调函数(callback),可以用来解决模块之间的依赖性

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript" src="require.js"></script>
    <script type="text/javascript">
      require(["js/a"], function(){
        alert("load finished");
      });
    </script>
  </head>
  <body>
   body
  </body>
</html>

step 2

require.config是用来配置模块加载位置

如果固定的位置比较长,可以使用 baseUrl : "js",则paths中就不用写js了

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript" src="require.js"></script>
    <script type="text/javascript">
      require.config({
        paths : {
          "jquery" : ["http://vs.thsi.cn/js/jquery-1.7.2.min", "js/jquery"],
          "a" : "js/a"        
        }
      });

      require(["jquery", "a"], function(){
        alert("load finished");
      });
    </script>
  </head>
  <body>
   body
  </body>
</html>

step 3

step 2中重复出现了require.config配置,如果每个页面中都加入配置,就显得不大好了,requirejs提供了一种叫"主数据"的功能

创建一个main.js把step 2中require.config放到main.js中

<script data-main="js/main" src="js/require.js"></script>

step 4

通过require加载的模块一般都需要符合AMD规范即使用define来申明模块,但是部分时候需要加载非AMD规范的js,这时候就需要用到另一个功能:shim

require.config({
  shim: {
    "underscore" : {
      exports : "_";
    },
    "jquery.form" : ["jquery"]
  }
});
require(["jquery", "jquery.form"], function($){
  $(function(){
    $("#form").ajaxSubmit({...});
  })
});

以上就是小编为大家带来的关于RequireJS的简单介绍即使用方法全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
Apr 12 Javascript
Javascript闭包用法实例分析
Jan 23 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
Jun 01 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
Jul 05 Javascript
用React实现一个完整的TodoList的示例代码
Oct 30 Javascript
实现div内部滚动条滚动到底部和顶部的代码
Nov 15 Javascript
mocha的时序规则讲解
Feb 16 Javascript
小程序click-scroll组件设计
Jun 18 Javascript
react-router-dom 嵌套路由的实现
May 02 Javascript
vue.js实现简单购物车功能
May 30 Javascript
解决vue的touchStart事件及click事件冲突问题
Jul 21 Javascript
分享几个JavaScript运算符的使用技巧
Apr 24 Javascript
javascript淘宝主图放大镜功能
Oct 20 #Javascript
利用Angular.js限制textarea输入的字数
Oct 20 #Javascript
一个极为简单的requirejs实现方法
Oct 20 #Javascript
JavaScript实现窗口抖动效果
Oct 19 #Javascript
原生js图片轮播效果实现代码
Oct 19 #Javascript
Angular2表单自定义验证器的实现
Oct 19 #Javascript
javascript滚轮控制模拟滚动条
Oct 19 #Javascript
You might like
php 无限级缓存的类的扩展
2009/03/16 PHP
php实现jQuery扩展函数
2009/10/30 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
Javascript this关键字使用分析
2008/10/21 Javascript
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
javascript计时器详解
2015/02/28 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
2016/06/20 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
Python3.5文件读与写操作经典实例详解
2019/05/01 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
详解Python中的分支和循环结构
2020/02/11 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
python3.5的包存放的具体路径
2020/08/16 Python
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
一套PHP的笔试题
2013/05/31 面试题
yy司仪主持词
2014/03/22 职场文书
学习经验交流会主持词
2014/04/01 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书