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. Git入门之在IDEA中使用Git上传maven项目

    下载安装git客户端: 参考博文:https://www.cnblogs.com/java-maowei/p/5950930.html 在IDEA怎么使用git上传spring的maven项目详解: ...

  2. java设计模式中的动态代理

    Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...

  3. Pearson Correlation Score

    [http://www.statisticshowto.com/what-is-the-pearson-correlation-coefficient/] Correlation between se ...

  4. Java 8 新特性之 Stream 流基础体验

    Java 8 新特性之 Stream 流基础体验 package com.company; import java.util.ArrayList; import java.util.List; imp ...

  5. Python 面向对象(下)

    本篇博客承接自Python 面向对象(上) 四. 继承,实现,依赖,关联,聚合,组合 Python面向对象--继承,实现,依赖,关联,聚合,组合 五. 特殊成员 Python面向对象--类的特殊成员 ...

  6. Docker参数 -i -t 的作用

    Docker 参数 -i -t 的作用通常的解释是: -t让docker分配一个伪终端并绑定到容器的标准输入上, -i则让容器的标准输入保持打开. 问题所以通常都是这样的: sudo docker r ...

  7. vs .net WebForm 模板添加注释

    首先说一点,好久不更新博客了.今天公司服务器不能用了,闲着没事儿,更新一篇博客. 今天要说的就是vs2010下,如何更改各种文件的模板,以省去每次新添加文件时,还得给文件添加文件标示注释等时间.很大程 ...

  8. 【图像处理】DVR H.264视频编码基本知识

    视频编码技术基本是由ISO/IEC制定的MPEG-x和ITU-T制定的H.26x两大系列视频编码国际标准的推出.从H.261视频编码建议,到 H.262/3.MPEG-1/2/4等都有一个共同的不断追 ...

  9. 14.Sqoop把数据从HDFS导出到mysql

    创建数据文件 ,gopal,manager,,TP ,manisha,preader,,TP ,kalil,php dev,,AC ,prasanth,php dev,,AC ,kranthi,adm ...

  10. 查找担保圈-step6-对被包含过的组进行清理,只保留未被包含过的组

    USE [test] GO /****** Object: StoredProcedure [dbo].[p04_get_groupno_cleared] Script Date: 2019/7/8 ...