export

https://www.cnblogs.com/fayin/p/6831071.html

导入文件: a  -  b  -  c  ,对象隔代消失,可转成函数返回

 导入模块对象(命名)   import  * as defaulta from  './print'
 导出前 命名  var n = 1;     export {n as m};
 
default 为关键字 不可作为赋值
1. export
普通导出
type.js export const a = 1 export const b = [1,2,3] export function c(){...} export const d = function (){...} 等价于 const a = 1
const b = [1,2,3] function c(){...} const d = function (){...} export {a,b,c,d} // 导出 import {a,b,a,d} from '@/utils/type' 2. export default
一个文件 一个 export default,存在多个时,只认第一个
export default后面不可以用 var、let、const 可用 export default function(){} function add(){}
export default function (name) {
console.log(name)
}
// 导出
import file from '@/utils/type'
file(5) // 3. export + export default
混合导出 export const fileType = function (name) {
console.log(name)
} export default function (name) {
console.log(name)
} // 导入 import * as fileType from '@/utils/type' fileType.fileType ('aaa') // aaa fileType.default ('sss') // sss // 或者 import fileTypedefault,{ fileType } from '@/utils/type' fileType ('aaa') // aaa fileTypedefault ('sss') // sss 4.同时导入导出
a.js
export const fileType = function (name) {
console.log(name)
} export default function (name) {
console.log(name)
} b.js 导入 a.js 后,导出自己
import xxx,{fileType } from './a' // xxx 为default 别名
export {xxx,fileType} 5. as
export function sampleA (name) {
console.log(name)
} export function sampleB (name) {
console.log(name)
} export function sampleC (name) {
console.log(name)
} export default function (name) {
console.log(name)
} // 导出 多个使用别名 import {
sampleA as funE,
sampleB as funF,
sampleC
} from '@/utils/type' // 或者 import sample, {
sampleA as funE,
sampleB as funF
} from '@/utils/type' funE('333') // funF('555') // sampleC('666') // sample('default') // default

其他细节

细节点一   default
export default命令其实只是输出一个叫做default的变量,所以它后面不能跟变量声明语句
// 正确
export var a = 1;
// 正确
var a = 1;
export default a;
// 错误
export default var a = 1; function add(x, y) { return x * y;}
export {add as default};
// 等同于
// export default add; import { default as foo } from 'modules';
// 等同于
// import foo from 'modules'; 细节点二 export 复合导出 ( 转发 )
export { foo, bar } from 'my_module';
写成一行以后,foo和bar实际上并没有被导入当前模块,只是相当于对外转发了这两个接口,
导致当前模块不能直接使用foo和bar。
// 接口改名
export { foo as myFoo } from 'my_module';
// 整体输出
export * from 'my_module'; 细节点三 默认接口、具名接口 转换
默认接口
export { default } from 'foo';
具名接口改为默认接口
export { es6 as default } from './someModule';
// 等同于
import { es6 } from './someModule';
export default es6;
默认接口也可以改名为具名接口
export { default as es6 } from './someModule';

CommonJS  AMD   ES6

CommonJS规范
同步模块化规范,适用于服务端 (Node使用CommonJS模块规范)
加载一次模块,后续使用缓存
module变量代表当前模块。
这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。
加载某个模块,其实是加载该模块的module.exports属性。
( var exports = module.exports; 引用,故不能重新赋值,但可以改变属性,所有涉及模块地方生效 )
module.exports.x = x; require方法用于加载模块
var example = require('./example.js'); AMD
异步加载模块,适用于浏览器
define(['package/lib'], function(lib){
function foo(){
lib.log('hello world!');
} return {
foo: foo
};
}); ES6
使用 export 和 import 来导出、导入模块
按需加载,只加载导入部分

export CommonJS AMD ES6的更多相关文章

  1. amd、cmd、CommonJS以及ES6模块化

    AMD.CMD.CommonJs.ES6的对比 他们都是用于在模块化定义中使用的,AMD.CMD.CommonJs是ES5中提供的模块化编程的方案,import/export是ES6中定义新增的 什么 ...

  2. JavaScript模块化CommonJS/AMD/CMD/UMD/ES6Module的区别

    目录 JS-模块化进程 原始的开发方式 CommonJS && node.js AMD && Require.js CMD && Sea.js UMD ...

  3. 深入 CommonJs 与 ES6 Module

    目前主流的模块规范 UMD CommonJs es6 module umd 模块(通用模块) (function (global, factory) { typeof exports === 'obj ...

  4. JavaScript模块化编程 - CommonJS, AMD 和 RequireJS之间的关系

    这几天在学习CommonJS的时候突然在StackOverflow上搜索到一个非常好的一个帖子,是关于CommonJS, AMD和RequireJS之间的关系的问答贴.我感觉写的非常好,鉴于没有找到相 ...

  5. CommonJS与ES6 Module的使用与区别

    CommonJS与ES6 Module的使用与区别 1. CommonJS 1.1 导出 1.2 导入 2. ES6 Module 2.1 导出 2.2 导入 3. CommonJS 与 ES6 Mo ...

  6. Webpack - CommonJs & AMD 模块打包器

    Webpack 是一个 CommonJs & AMD 模块打包器.可以把你的 JavaScript 代码分离为多个包,在需要的时候进行加载,支持预处理文件,例如 json, jade, cof ...

  7. CommonJS, AMD, CMD是什么及区别--简单易懂有实例

    CommonJS, AMD, CMD都是JS模块化的规范. CommonJS是服务器端js模块化的规范,NodeJS是这种规范的实现. AMD(异步模块定义)和CMD(通用模块定义)都是浏览器端js模 ...

  8. 前端模块化(CommonJs,AMD和CMD)

    前端模块规范有三种:CommonJs,AMD和CMD. CommonJs用在服务器端,AMD和CMD用在浏览器环境 AMD 是 RequireJS 在推广过程中对模块定义的规范化产出. CMD 是 S ...

  9. JavaScript模块化演变 CommonJs,AMD, CMD, UMD(一)

    原文链接:https://www.jianshu.com/p/33d53cce8237 原文系列2链接:https://www.jianshu.com/p/ad427d8879cb 前端完全手册: h ...

随机推荐

  1. 计算机组成原理 — GPU 图形处理器

    目录 文章目录 目录 显卡 GPU GPU 与深度学习 GPU 与 CPU 体系结构的区别 GPU 显存与 CPU 主存的区别 GPU 与 CPU 之间的数据交互方式 GPU 的体系结构 GPU 的工 ...

  2. nginx.conf 配置 (反向代理,负载均衡,fastdfs model)

    #user nobody;worker_processes 1; #error_log logs/error.log;#error_log logs/error.log notice;#error_l ...

  3. 《计算机系统要素》第四章 类汇编语言 Hack

    这章通过学习书中自己设计的Hack语言的使用,弄懂汇编语言的工作原理. 汇编语言最接近底层了,因为每个指令对应一个二进制编码. 当这些指令都变成...0101011100101...的形式后,内存Me ...

  4. 视图push和presentViewController注意点

    presentViewController: - (void)publishClick{ NSLog(@"发布按钮被点击"); PublishViewController *pub ...

  5. Java数组(4):数组实用功能

    Java标准类库的System.arraycopy()方法,及在java.utils.Arrays类中一套用于数组的static方法,都是操纵数组实用功能.下面分别介绍. (1) 数组的复制 (2)  ...

  6. RobotFramework的安装

    Robot Framework自动化测试框架+可视化编辑工具RIDE+Selenium2这是规范的webAPI. 一通过下载安装包安装 1)RF 框架是基于 Python 语言的,所以一定要有 Pyt ...

  7. maven-插件地址

    Maven官方有两个插件列表, 第一个列表的GroupId 为 org.apache.maven.plugins,这里的插件最为成熟,具体地址为:http://maven.apache.org/plu ...

  8. 解读GitHub EntityComponentSystemSamples

    出自Unity官方的ECS项目示例,该项目的第一次Commit是在2018年3月20号,距离现在一年半的时间,这期间ECS本身的生态在快速发展,稳定性也是逐步提升,期待在2020年的Unity版本中作 ...

  9. 喜欢听DJ的朋友可以自己用下,别传播

    // ==UserScript== // @icon http://djkk.com/favicon.ico // @name DJKK Downloader // @namespace http:/ ...

  10. JavaScript日期格式化处理

    /** * 获取年月,如:2018-08 */ export function getMonth () { return formatDate(new Date(), 'yyyy-MM') } /** ...