关于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 相关文章推荐
window.requestAnimationFrame是什么意思,怎么用
Jan 13 Javascript
JS获取各种宽度、高度的简单介绍
Dec 19 Javascript
jQuery实现的多级下拉菜单效果代码
Aug 24 Javascript
JavaScript学习笔记之ES6数组方法
Mar 25 Javascript
全面了解函数声明与函数表达式、变量提升
Aug 09 Javascript
JS简单实现仿百度控制台输出信息效果
Sep 04 Javascript
jQuery实现立体式数字滚动条增加效果
Dec 21 Javascript
JS实现DIV高度自适应窗口示例
Feb 16 Javascript
JavaScript设计模式之观察者模式实例详解
Jan 16 Javascript
详解如何使用router-link对象方式传递参数?
May 02 Javascript
JS自定义对象创建与简单使用方法示例
Jan 15 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
Jun 16 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个人网站架设连环讲(一)
2006/10/09 PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
js实现时分秒倒计时
2019/12/03 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
Python 操作文件的基本方法总结
2017/08/10 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
Python虚拟环境项目实例
2017/11/20 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
基于python中__add__函数的用法
2019/11/25 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
数学系毕业生的自我评价
2014/01/10 职场文书
给老婆的搞笑检讨书
2014/01/12 职场文书
商业房地产广告语
2014/03/13 职场文书
小学五年级学生评语
2014/04/22 职场文书
初中英语课后反思
2014/04/25 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
和谐社区口号
2014/06/19 职场文书
企业安全生产检查制度
2015/08/06 职场文书