export

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

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

 导入模块对象(命名)   import  * as defaulta from  './print'
 导出前 命名  var n = 1;     export {n as m};
 
  1. default 为关键字 不可作为赋值
  2. 1. export
  3. 普通导出
  4. type.js
  5.  
  6. export const a = 1
  7.  
  8. export const b = [1,2,3]
  9.  
  10. export function c(){...}
  11.  
  12. export const d = function (){...}
  13.  
  14. 等价于
  15.  
  16. const a = 1
  17. const b = [1,2,3]
  18.  
  19. function c(){...}
  20.  
  21. const d = function (){...}
  22.  
  23. export {a,b,c,d}
  24.  
  25. // 导出
  26.  
  27. import {a,b,a,d} from '@/utils/type'
  28.  
  29. 2. export default
  30. 一个文件 一个 export default,存在多个时,只认第一个
  31. export default后面不可以用 varletconst 可用 export default function(){} function add(){}
  32. export default function (name) {
  33. console.log(name)
  34. }
  35. // 导出
  36. import file from '@/utils/type'
  37. file(5) //
  38.  
  39. 3. export + export default
  40. 混合导出
  41.  
  42. export const fileType = function (name) {
  43. console.log(name)
  44. }
  45.  
  46. export default function (name) {
  47. console.log(name)
  48. }
  49.  
  50. // 导入
  51.  
  52. import * as fileType from '@/utils/type'
  53.  
  54. fileType.fileType ('aaa') // aaa
  55.  
  56. fileType.default ('sss') // sss
  57.  
  58. // 或者
  59.  
  60. import fileTypedefault,{ fileType } from '@/utils/type'
  61.  
  62. fileType ('aaa') // aaa
  63.  
  64. fileTypedefault ('sss') // sss
  65.  
  66. 4.同时导入导出
  67. a.js
  68. export const fileType = function (name) {
  69. console.log(name)
  70. }
  71.  
  72. export default function (name) {
  73. console.log(name)
  74. }
  75.  
  76. b.js 导入 a.js 后,导出自己
  77. import xxx,{fileType } from './a' // xxx 为default 别名
  78. export {xxx,fileType}
  79.  
  80. 5. as
  81. export function sampleA (name) {
  82. console.log(name)
  83. }
  84.  
  85. export function sampleB (name) {
  86. console.log(name)
  87. }
  88.  
  89. export function sampleC (name) {
  90. console.log(name)
  91. }
  92.  
  93. export default function (name) {
  94. console.log(name)
  95. }
  96.  
  97. // 导出 多个使用别名
  98.  
  99. import {
  100. sampleA as funE,
  101. sampleB as funF,
  102. sampleC
  103. } from '@/utils/type'
  104.  
  105. // 或者
  106.  
  107. import sample, {
  108. sampleA as funE,
  109. sampleB as funF
  110. } from '@/utils/type'
  111.  
  112. funE('333') //
  113.  
  114. funF('555') //
  115.  
  116. sampleC('666') //
  117.  
  118. sample('default') // default

其他细节

  1. 细节点一 default
  2. export default命令其实只是输出一个叫做default的变量,所以它后面不能跟变量声明语句
  3. // 正确
  4. export var a = 1;
  5. // 正确
  6. var a = 1;
  7. export default a;
  8. // 错误
  9. export default var a = 1;
  10.  
  11. function add(x, y) { return x * y;}
  12. export {add as default};
  13. // 等同于
  14. // export default add;
  15.  
  16. import { default as foo } from 'modules';
  17. // 等同于
  18. // import foo from 'modules';
  19.  
  20. 细节点二 export 复合导出 转发
  21. export { foo, bar } from 'my_module';
  22. 写成一行以后,foobar实际上并没有被导入当前模块,只是相当于对外转发了这两个接口,
  23. 导致当前模块不能直接使用foobar
  24. // 接口改名
  25. export { foo as myFoo } from 'my_module';
  26. // 整体输出
  27. export * from 'my_module';
  28.  
  29. 细节点三 默认接口、具名接口 转换
  30. 默认接口
  31. export { default } from 'foo';
  32. 具名接口改为默认接口
  33. export { es6 as default } from './someModule';
  34. // 等同于
  35. import { es6 } from './someModule';
  36. export default es6;
  37. 默认接口也可以改名为具名接口
  38. export { default as es6 } from './someModule';

CommonJS  AMD   ES6

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

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. css sprite 雪碧图

    使用雪碧图的目的:有时为了美观,我们会使用一张图片来代替一些小图标,但是一个网页可能有很多很多的小图标,浏览器在显示页面的时候,就需要像服务器发送很多次访问请求, 这样一来,一是造成资源浪费,二是会导 ...

  2. rally测试opentack------安装部署和简单实践

    1,下载 git clone git://git.openstack.org/openstack/rally 或者 git clone https://git.openstack.org/openst ...

  3. SpringMVC整合SpringFox实践总结

    项目中使用的swagger框架在生成api文档时存在一些问题: 1. 控制器下方法无法点击展开 2.api内容结构混乱 基于上述原因,重新整合重构了一下api文档生成的代码.在此将重整过程记录下来,方 ...

  4. kubernetes发布tomcat服务,通过deployment,service布署(转)

    1.制作tomcat镜像 参考docker tomcat镜像制作 此处直接拉取 查看已有可镜像 先设置docker阿里源,即添加 "registry-mirrors": [&quo ...

  5. 用mongodump以及mongorestore来完成mongo的迁移任务

    首先粘贴官网说明: 详细请见:https://docs.mongodb.com/manual/ 在实际操作中,一般只需用到 mongodump -h ip:port -d dbName -o path ...

  6. Linux系统管理_主题02 :管好文件(1)_2.4 链接文件_ln

    在 Linux 中,链接有两种:符号链接(symbolic link)和硬链接(hard link).  删除一个符号链接不会影响到这个符号链接指向的目标文件或目 录:  反过来,删除.移动或者重 ...

  7. CentOS里查看内存的使用

    转自 http://blog.csdn.net/blueman2012/article/details/6904597

  8. C# Redis 缓存应用 主要代码及版本选择

    /// <summary> /// RedisManager类主要是创建链接池管理对象的 /// </summary> public class RedisManager { ...

  9. APP安全_Android渗透环境

    Android渗透 移动APP大多通过WEB API服务的方式与服务端进行交互,这种模式把移动安全和web安全绑在一起.常见的web漏洞在移动APP中也存在,比如SQL注入,文件上传,中间件/serv ...

  10. Mysql安装后在服务里找不到和服务启动不起来的解决方法

    一,在安装完Mysql数据库后,发现在控制面板->管理->服务中找不到Mysql的服务启动 解决方法如下:开启命令行,按照如下步骤即可: 1.进入到mysql的安装包,在bin里执行:my ...