模块化机制

CommonJS模块化规范

  1. 导入
    1. let { firstName, lastName } = require(’./1-module.js’)
  2. 导出
    1. module.exports={}

AMD模块化规范

  1. AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。
  2. 它采用异步方式加载模块,模块的加载不影响它后面语句的运行。
  3. 所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。

ES6模块化规范

  1. 导入
    1. import { firstName, lastName, a, post } from ‘./module1.js’;
    2. 导入默认
    1. import data from ‘./module1.js’
    3. 导入全部
    1. import * as data from ‘./module1.js’;
    4. 导入执行(模块加载)
    1. import ‘./module1.js’;
    5. 导入第三方模块(去项目的根目录找node_modules)
    1. import ‘babel-preset-latest’;
  2. 导出
    1. export { firstName, lastName };
    2. 默认导出(一个模块有且只能有1个默认导出,默认导出与普通导出可以共存)
    1. export default { }

CommonJS与ES6模块化规范区别

CommonJS

     * 对于基本数据类型,属于复制。即会被模块缓存。同时,在另一个模块可以对该模块输出的变量重新赋值。* 对于复杂数据类型,属于浅拷贝。由于两个模块引用的对象指向同一个内存空间,因此对该模块的值做修改时会影响另一个模块。* 当使用require命令加载某个模块时,就会运行整个模块的代码。* 当使用require命令加载同一个模块时,不会再执行该模块,而是取到缓存之中的值。也就是说,CommonJS模块无论加载多少次,都只会在第一次加载时运行一次,以后再加载,就返回第一次运行的结果,除非手动清除系统缓存。* 运行时加载

ES6

     * ES6模块中的导入导出值属于【动态只读引用】。* 对于只读来说,即不允许修改引入变量的值,import的变量是只读的,不论是基本数据类型还是复杂数据类型。当模块遇到import命令时,就会生成一个只读引用。等到脚本真正执行时,再根据这个只读引用,到被加载的那个模块里面去取值。* 对于动态来说,原始值发生变化,import加载的值也会发生变化。不论是基本数据类型还是复杂数据类型。* 编译时输出接口。

es6模块化机制及CommonJS与ES6模块化规范区别相关推荐

  1. 模块化(AMD、CMD、CommonJS、ES6)

    1,CommonJS 服务器,同步加载模块,加载机制是:输出拷贝 模块导出:module.exports 导入模块:require 2,AMD(异步模块定义) 用于浏览器,防止js加载阻塞页面渲染,异 ...

  2. es6 混合commjs_前端模块化——CommonJS、ES6规范

    什么叫模块化? 对于一个复杂的程序,将其按照一定的规范封装成几个文件块,每一块向外暴露一些接口,但是块的内部数据是私有的,块与块之间通过接口通信.这个过程称为模块化. 模块化的好处 CommonJS ...

  3. JS模块化(二):ES6 模块化

    简介 ECMA推出了官方标准的模块化解决方案,使用 export 导出,import 导入,编码简洁,从语义上更加通俗易懂. let name = 'now'; let fun = () => ...

  4. 03.06 随手记(AMD、CMD、CommonJS、ES6 Module的区别)

    ***当前阶段的笔记 *** 「面向实习生阶段」https://www.aliyundrive.com/s/VTME123M4T9 提取码: 8s6v 点击链接保存,或者复制本段内容,打开「阿里云盘」 ...

  5. AMD、CMD、CommonJS、ES6(import/export)

    AMD.CMD.CommonJS.ES6(import/export) AMD.CMD.CommonJS是ES5模块化解决方案 AMD -- 异步模块 Asynchronous Module Defi ...

  6. 模块打包之CommonJS与ES6模块比较初探

    Time: 20190920 模块是具有特定功能的组成单元,不同模块负责不同的工作,然后会以某种方式联系到一起,形成完整的程序逻辑. CommonJS CommonJS是2009年社区提出的,包含模块 ...

  7. commonjs、ES6的模块暴露和模块引入

    一.commonjs commonjs是作用于服务端应用程序,让js程序具有模块化功能的一种语法规范,执行方式是同步且运行时加载. (一).module.exports 导出 定义一个匿名对象,将需要 ...

  8. linux模块化机制,Linux模块化机制和module_init

    > 引子:模块化机制优点 模块化机制(module)是Linux系统的一大创新,是Linux驱动开发和运行的基础(当然,module并不仅仅是支撑驱动).其优点在于: 1.在系统运行动态加载模块 ...

  9. Javascript模块化编程系列二: 模块化的标准化(CommonJS AMD)

    前言 Javascript模块化编程系列一: 模块化的驱动 在前一篇介绍了为什么要进行Javascript模块化编程.至于如何实现模块化,不同的开发组织和个人具体的实现方式肯定是不一样.如何统一一个规 ...

最新文章

  1. ORACLE 配置文件
  2. python入门基础代码图-Python Matplotlib绘图基础知识代码解析
  3. 矩阵二范数(norm)
  4. 什么是.hpp文件?
  5. 安装包镜像_创建 macOS Catalina cdr格式镜像安装包
  6. 200设备管理器找不到蓝牙_达尔优LK200蓝牙键盘,一键切换+支持三台设备+百元不到...
  7. % 在C语言中的用法
  8. Docker~从Dockerfile到Container的过程
  9. java int 和 long比较大小会_解析java的addExact()与multiplyExact()
  10. Java类、实例的初始化顺序
  11. Redis笔记(七)Java实现Redis消息队列
  12. mysql自带的管理工具_mysql几个管理工具推荐
  13. Redis 五大数据类型的基本命令使用
  14. session自动登录抽屉网(自动携带cookie)
  15. 拿图就走系列之《深入理解java虚拟机》
  16. 计算机丢失GetU,u盘启动引导文件丢失如何修复
  17. pyinstaller 打包 python3项目,遇到failed to execute script XXX 错误的解决方法
  18. eclipse插件集
  19. 语音特征MFCC和PLP
  20. 机器学习中绘制(多标签)PR曲线和F1-score【转载】

热门文章

  1. 微信如何实现自动跳转到用其他浏览器打开指定页面下载APK的方案
  2. IC上电和关断 --- POR策略
  3. 【小西】同步咪咕订单给咪咕方(写接口给第三方)
  4. 中国经济的长周期走势
  5. MYSQL 存储过程 与 count(*)、count(列)、 count(1) 的理解
  6. 测试用例设计——如何提高测试覆盖率
  7. Insist(HTML+CSS)
  8. 2013年11月-2014年5月规划
  9. OCR银行卡辨识SDK
  10. U盘安装win7+ubuntu双系统