RequireJS是实现AMD(异步模块定义)规范的插件之一
所谓异步模块是指定义的这些模块,会被浏览器异步加载,模块的加载不影响他后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。
1.RequireJS解决了哪些问题
(1)实现js文件的异步加载,避免网页失去响应
(2)管理模块之间的依赖性,便于代码的编写和维护

2.RequireJS核心接口
(1)data-main:作用是指定网页程序的主模块,require.js在加载的时候会检查data-main属性,如果设置了这个属性,就会获取属性值,根据属性值设置文件路径,找到对应的主模块文件,异步加载这个文件
语法:require(['moduleA', 'moduleB', 'moduleC'],    function (moduleA, moduleB, moduleC){ // some code here })
(2)require( ):作用 - 异步加载依赖的模块,将所有依赖的模块加载完成后,将各个模块返回值传入回调函数参数中,在回调函数中实现业务逻辑
语法:function (moduleA, moduleB, moduleC){ // some code here  }
(3)define( ):作用是定义AMD模块。
用法1:简单的值对 - 如果一个模块仅含值对,没有任何依赖,则在define( )中定义这些值对即可
用法2:函数式定义 - 如果一个模块没有任何依赖,但有一些内部方法和变量,可以将这些放在一个函数中
用法3:存在依赖的函数式定义 - 如果模块存在依赖,第一个参数是依赖的名称数组,第二个参数是函数,在模块的所有依赖加载完毕后,该函数会被调用来定义该模块
语法:define(['moduleA','moduleB'],function(moduleA,moduleB){ })
(4)require.config( ):该函数主要用于配置模块加载的行为
用法:该函数一般都写在main文件的开头部分
语法:require.config({paths:{}, baseUrl : String, })
path:指定各个模块的加载路径
baseUrl:如未显示设置baseUrl,则默认值是加载require.js的HTML所处的位置,如用了data-main属性,则该路径就变成baseUrl
shim属性:为那些没有使用define( )定义模块的插件设置依赖和导出变量名

3.重要注意点
(1)所有模块只会被加载执行一次,即使这个模块被多个模块依赖
(2)一个文件一个模块:每个JavaScript文件应该之定义一个模块,这是模块名-至-文件名查找机制的自然要求,多个模块会被优化工具组织优化,但你在使用优化工具时应将多个模块放置到一个文件中。
(3)路径小知识:
./代表当前目录(可省略不写)
../代表上层目录
../../代表上层目录的上层目录
/代表根目录

RequireJS简介相关推荐

  1. RequireJS - 简介

      RequireJS是一个JavaScript文件或者模块的加载器.它可以提高JavaScript文件的加载速度,避免不必要的堵塞.它针对于在浏览器环境中使用做过专门的优化,但它也可以在其他的Jav ...

  2. requirejs 简介

    随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂. 网页越来越像桌面程序,需要一个团队分工协作.进度管理.单元测试等等......开发者 ...

  3. 使用 RequireJS 优化 Web 应用前端

    基于 AMD(Asynchronous Module Definition)的 JavaScript 设计已经在目前较为流行的前端框架中大行其道,jQuery.Dojo.MooTools.EmbedJ ...

  4. 使用RequireJS优化Web应用前端

    2019独角兽企业重金招聘Python工程师标准>>> RequireJS是一个非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一.最新版本的RequireJS ...

  5. 2020年最新web学习路线,完整课程大纲 120天高薪就业

    第一阶段课程大纲 全套视频链接 课件.答疑QQ群:1103015245 第 01 天 HTML初体会 教学目标:了解什么是页面. 掌握html骨架的书写以及骨架中标签的作用. 快捷键操作. 相关字符编 ...

  6. 基于angularJS和requireJS的前端架构

    1.概要描述 1.1.angularJS描述:angularJS是可以用来构建WEB应用的,WEB应用中的一种端对端的完整解决方案.通过开发者呈现一个更高层次的抽象来简化应用的开发.最适合的就是用它来 ...

  7. X5跨端移动开发框架开源项目简介

    X5跨端移动开发框架开源项目简介 一.X5是什么 X5是跨端移动快速开发框架:只需一次开发,即可发布.运行于各种前端平台上:支持iOS ipa.android apk.微信服务号/企业号应用.web ...

  8. 深入浅出 RequireJS

    简介 一个复杂的应用,其编程语言也必须要有模块机制,方能更好的组织代码.在前端 js 模块中,RequireJS 是一个非常小巧的 JavaScript 模块载入框架,是 AMD 规范最好的实现者之一 ...

  9. requireJs快速上手

    简介 require.js的主要作用是模块化,规范化js,作为JavaScript脚本加载器,遵循AMD规范: require.js中提供了优化器可以优化页面中的js脚本和css文件,以提高页面响应速 ...

最新文章

  1. Android NDK开发篇(一):新版NDK环境搭建(免Cygwin,超级快)
  2. Android之在Layout中自定义View
  3. Mysql(4)——数据库相关操作
  4. 计算机专业小三门要求,最新小三门选科要求有啥变化?附对比表
  5. spark java pom.xml_使用maven方式创建spark项目(配置pom.xml文件)
  6. 谷歌中巨大的 SEO 骗局!排名靠前的 HTML 编辑器也不可信
  7. java异常处理:finally中不要return
  8. css中的伪类与伪元素的区别
  9. 成都电子地图 高清15、17、19级别 谷歌电子地图资源
  10. 心电电路算法滤波_简述心电信号采集原理及电路设计
  11. 基于 element ui 之 ui-tooltip 组件
  12. MAX30102学习笔记(上)
  13. java flush是什么意思,java – JPA中flush的确切目的是什么
  14. ps文字工具学习笔记
  15. 【独行秀才】macOS Monterey 12.0 Beta4(21A5294g)原版镜像
  16. 我的世界红石音乐高级教程 python辅助制作工具
  17. 深入理解图卷积神经网络(GCN)原理
  18. 软工网络15结对编程练习(201521123007谭燕)
  19. 【ReID】局部特征
  20. Error fetching server time: Detected 31.361999988555908 seconds time difference between your browser

热门文章

  1. 干货|词云指北(下):字节跳动数据平台词云实践
  2. JavaEE - Servlet(向服务器上传文件 Part类)
  3. MSP430G2553最小系统板(PCB)
  4. 技术分享:全景视频技术的实现
  5. Android下音频tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo)--------mark详细
  6. 未知的事情,发生在未知的时候
  7. 快速入门丨篇三:如何进行运动控制器ZPLC程序开发?
  8. R语言中如何将中文日期转化为英文格式(日期格式是%B,% A,却显示中文日期格式)
  9. Docker部署MongoDB
  10. QT3633 自动抢单软件