关于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 相关文章推荐
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
ECMAScript6中Set/WeakSet详解
Jun 12 Javascript
jQuery实现的多级下拉菜单效果代码
Aug 24 Javascript
jQuery实现可编辑的表格实例讲解(2)
Sep 17 Javascript
基于JavaScript获取鼠标位置的各种方法
Dec 16 Javascript
jQuery选择器用法实例详解
Dec 17 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
May 18 Javascript
AngularJS  自定义指令详解及实例代码
Sep 14 Javascript
javascript数据结构之串的概念与用法分析
Apr 12 Javascript
layer插件select选中默认值的方法
Aug 14 Javascript
教你搭建按需加载的Vue组件库(小结)
Jul 29 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
Mar 10 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
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
Javascript图像处理思路及实现代码
2012/12/25 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
2019/04/30 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
JS实现轮播图效果
2020/01/11 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
2020/04/09 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
Python获取系统默认字符编码的方法
2015/06/04 Python
Python部署web开发程序的几种方法
2017/05/05 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
Python Celery多队列配置代码实例
2019/11/22 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
自荐信格式技巧有哪些呢
2013/11/19 职场文书
学术会议主持词
2014/03/17 职场文书
三八妇女节活动总结
2014/05/04 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
我收到了德劲DE1107
2022/04/05 无线电
git中cherry-pick命令的使用教程
2022/06/25 Servers