myJS
  • 说明
  • js核心
  • 函数式编程
    • 链式优化
    • 你真的知道函数吗?
    • 纯函数
    • 函数柯里化
  • 内存的那些事
    • 栈内存和堆内存
    • 垃圾回收机制-GC
    • 闭包恍然大悟
      • 运行时的词法作用域
    • 数据结构基于内存
    • 怎样用chrome devtool 查看内存泄漏状况
    • dom元素的内存泄漏例子讲解
  • 网络请求
    • 原生js请求
    • https了解一下
    • 跨域方法
    • 你不知道的浏览器页面渲染机制
    • 聊点 TCP 干货(1)
  • 异步编程
    • await 和 async
  • 服务器
    • nginx
  • 模块化编程
    • commonJs模块
    • ES模块
    • AMD模块
    • CMD模块
    • module.exports与export那些事儿
  • webpack
    • 环境变量的使用
      • node配置
      • webapck配置
    • postcss处理css
    • webpack-dev-server
    • HMR热更新原理
    • babel配置
      • 转化es6
      • Runtime transform/runtime
    • extract-text-webpack-plugin
    • css加载
    • 打包优化
    • 第三方插件加载中
    • 热更新踩坑
    • typescript+node
    • 代码分割的意思
  • CMD命令行
    • 文件的增删改查
  • node
    • path模块
    • node 文件路径的分析
  • js一些资源库
  • node毛皮
    • cnpm 淘宝镜像
  • 浏览器调试
    • js调试
    • 浏览器同源政策及其规避方法
  • 好好理解变量
    • this指向
    • 作用域
  • 专有名词理解
    • MVC
  • postman
    • 环境变量
  • 树的遍历和操作
    • 二叉树
  • 关于Date你要知道的是?
    • 获取某个月的天数
    • js 日期详解
  • Dom 对象
  • 回调函数
    • 语法。为什么要用
  • class 怎样用好类
    • 用类直接创建对象关联到变量
  • js引擎
  • git操作
    • .gitignore忽略文件
    • 删除操作
  • table学习
    • 表格样式
    • 固定列和行
  • 拖拽
    • 目标容器
    • 狐火的拖拽就是不一样
  • 正则学习
  • 算法
    • 数据结构
  • js小技巧
  • indexDB
  • Matrix 矩阵
Powered by GitBook
On this page
  • AMD模块:异步加载模块(requireJS)
  • 当不在同一路径下的时候就需要配置模块了,使用require.config()方法,写在文件最上面。path用来定义路径
  • 有很多库是没有使用AMD规范的,加载的时候必须使用shim属性配置,比如underscore.js,其中exports是模块调用时使用的名称。deps这个模块所依赖的其他模块

Was this helpful?

  1. 模块化编程

AMD模块

  • 原文地址:http://www.ruanyifeng.com/blog/2012/11/require_js.html

  • 原文链接:http://www.ruanyifeng.com/blog/2012/10/asynchronous_module_definition.html

AMD模块:异步加载模块(requireJS)

  • 模块名配置

加载模块的时候,需要用到模块的名称,当模块文件都是在同一目录下,可以把文件名称当做模块名直接加载引用,这些文件必须都是符合AMD规范,即文件里使用define 定义模块过。当然也可以配置非标准的模块,即没有使用define定义。

require(["jquery",],function($){

 ......

})

再引入模块的时候会首先加载jquery.js和underscore.js,加载完成再执行回调函数。

当不在同一路径下的时候就需要配置模块了,使用require.config()方法,写在文件最上面。path用来定义路径

require.config({

    paths: {

          "jquery": "./lib/jquery.min",//路径可以是网络地址 https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min
         
        }


});

require(["jquery"],function($){
....

});

有很多库是没有使用AMD规范的,加载的时候必须使用shim属性配置,比如underscore.js,其中exports是模块调用时使用的名称。deps这个模块所依赖的其他模块

require.config({

shim:{
 underscore:{
  exports: '_',
  deps:[],
 }
}
path:{



},


})
  • 模块的定义:define

AMD是异步加载的模块,通过define来定义模块导出,要是依赖其他的模块,那第一个参数是一个数组,里面是被依赖的模块。math是一个就是math.js路径的简写,define的回调函数里要返回要用的变量。

define(["math"],function(math){

    let a = 1;
    let b = function(){

        return 34 ;

    }

   return {
       a:a,
       b:b
   }



});
  • 模块的加载:require

AMD通过require加载模块,

require(["math"],function(){





});
PreviousES模块NextCMD模块

Last updated 6 years ago

Was this helpful?