一、AMD(异步模块定义)

AMD(异步模块定义)是RequireJS在推广过程中对模块定义的规范化产出。AMD是一个概念,RequireJs是对这个概念的实现。比如javascript语言是对ECMAscript语言的实现,ECMAscript是一个组织,RequireJS是这个组织之下制定的一套脚本语言。

// 异步的动态的加载js文件
// 依赖别的库,通过数组形式加载库进来['package/lib']
## define定义,依赖lib库,通过['package/lib']加载这个库,通过回调函数接受lib参数,可以得到lib里面的一下方法
define(['package/lib'], function(lib){
function foo(){
lib.log("hello world!")
}
return { // return输出
foo:foo
}
})
引用的话通过require就可以加载。就是异步模块定义,称为依赖前置(依赖或需要的时候在最上面定义好)

二、CMD(同步模块定义)

CMD(同步模块定义)是SeaJS(淘宝团队)在推广过程中对模块定义的规范化产出。

// 所有模块都通过define来定义
define(function(require, exports, module){
// 通过require引入依赖
var $ = require('jquery');
var Spinning = require('./spinning');
}) 依赖就近(什么时候使用,就什么时候引进来),即用即返回

三、CommonJS规范

CommonJS规范-module.exports   是服务端nodeJs后端支持的规范,前端浏览器不支持CommonJS规范。

是服务端进行模块划分的方式
exports.area = function(r){
return Math.PI * r * r;
}
exports.circumference = function(r){
return 2 * Math.PI * r;
}
两种输出方式:
module.exports 没有名字的命名输出
exports 带有有名字的输出

四、ES6特性 export/import 导出/导入

export default{}  // 默认导出
import router from './router' // 导入
export function formatDate(date, fmt) {} // 向浏览器暴露这个方法
import { format } from 'common/js/utils' // 导入
export let sum = (x,y)=>{ return x+y }
import * as util from './util' // 通过*封装起来
console.log(`sum:${util.sum(1,6)}`) 相当于:
define('util',function(){
return {
sum:function(){ },
minus:function(){ }
}
})
methods:{
increment(){
this.$emit("incre");
import('./../util') // 异步加载 与require('...')一样的
}
}

最新文章

  1. 能省则省:在ASP.NET Web API中通过HTTP Headers返回数据
  2. XSS 和 CSRF 攻击
  3. 学习总结——DOM
  4. ios_图片放大的两种方式transform和frame
  5. app被Rejected 的各种原因翻译
  6. FZU 2169 shadow (用了一次邻接表存边,树形DP)
  7. PyQt 5.2 发布,此版本完全支持Qtv5.2.0
  8. Git中从远程的分支获取最新的版本到本地
  9. 基于Redis的CAS服务端集群
  10. The Hitchhiker’s Guide to Python! — The Hitchhiker's Guide to Python
  11. cocos2dx中的精灵CCSprite
  12. HDU 5772 String problem
  13. 1.JAVA WEB 笔记中文乱码
  14. 【BZOJ1901】【Luogu2617】Dynamic Ranking(主席树,树状数组)
  15. yum安装指定版本的软件包的方法
  16. 【XSY2535】整数 NTT
  17. springboot10-springcloud-eureka 服务注册与发现,负载均衡客户端(ribbon,feign)调用
  18. import tensorflow 报错: tf.estimator package not installed.
  19. [Q&A] 解决 SBT 初始化或下载 jar 包速度慢的问题
  20. char varchar

热门文章

  1. 不要滥用SharedPreference
  2. LitJson(读Exce文件写入到json文件):
  3. pat05-图2. Saving James Bond - Easy Version (25)
  4. 关于数学问题的urls
  5. nyoj 1216——整理图书 CF 229D—— Towers——————【dp+贪心】
  6. Postman+Newman+Jenkins APItest自动化集成测试
  7. 【AngularJs】---angular-chart.js 图表报表
  8. Spring-cloud微服务 Eureka学习教程-单服务器配置之快速搭建EurekaServer、EurekaClient(基础)
  9. winform文件拖入
  10. oracle笔记2-多表查询和子查询