export CommonJS AMD ES6
export
https://www.cnblogs.com/fayin/p/6831071.html
导入文件: a - b - c ,对象隔代消失,可转成函数返回
- 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的更多相关文章
- amd、cmd、CommonJS以及ES6模块化
AMD.CMD.CommonJs.ES6的对比 他们都是用于在模块化定义中使用的,AMD.CMD.CommonJs是ES5中提供的模块化编程的方案,import/export是ES6中定义新增的 什么 ...
- JavaScript模块化CommonJS/AMD/CMD/UMD/ES6Module的区别
目录 JS-模块化进程 原始的开发方式 CommonJS && node.js AMD && Require.js CMD && Sea.js UMD ...
- 深入 CommonJs 与 ES6 Module
目前主流的模块规范 UMD CommonJs es6 module umd 模块(通用模块) (function (global, factory) { typeof exports === 'obj ...
- JavaScript模块化编程 - CommonJS, AMD 和 RequireJS之间的关系
这几天在学习CommonJS的时候突然在StackOverflow上搜索到一个非常好的一个帖子,是关于CommonJS, AMD和RequireJS之间的关系的问答贴.我感觉写的非常好,鉴于没有找到相 ...
- CommonJS与ES6 Module的使用与区别
CommonJS与ES6 Module的使用与区别 1. CommonJS 1.1 导出 1.2 导入 2. ES6 Module 2.1 导出 2.2 导入 3. CommonJS 与 ES6 Mo ...
- Webpack - CommonJs & AMD 模块打包器
Webpack 是一个 CommonJs & AMD 模块打包器.可以把你的 JavaScript 代码分离为多个包,在需要的时候进行加载,支持预处理文件,例如 json, jade, cof ...
- CommonJS, AMD, CMD是什么及区别--简单易懂有实例
CommonJS, AMD, CMD都是JS模块化的规范. CommonJS是服务器端js模块化的规范,NodeJS是这种规范的实现. AMD(异步模块定义)和CMD(通用模块定义)都是浏览器端js模 ...
- 前端模块化(CommonJs,AMD和CMD)
前端模块规范有三种:CommonJs,AMD和CMD. CommonJs用在服务器端,AMD和CMD用在浏览器环境 AMD 是 RequireJS 在推广过程中对模块定义的规范化产出. CMD 是 S ...
- JavaScript模块化演变 CommonJs,AMD, CMD, UMD(一)
原文链接:https://www.jianshu.com/p/33d53cce8237 原文系列2链接:https://www.jianshu.com/p/ad427d8879cb 前端完全手册: h ...
随机推荐
- css sprite 雪碧图
使用雪碧图的目的:有时为了美观,我们会使用一张图片来代替一些小图标,但是一个网页可能有很多很多的小图标,浏览器在显示页面的时候,就需要像服务器发送很多次访问请求, 这样一来,一是造成资源浪费,二是会导 ...
- rally测试opentack------安装部署和简单实践
1,下载 git clone git://git.openstack.org/openstack/rally 或者 git clone https://git.openstack.org/openst ...
- SpringMVC整合SpringFox实践总结
项目中使用的swagger框架在生成api文档时存在一些问题: 1. 控制器下方法无法点击展开 2.api内容结构混乱 基于上述原因,重新整合重构了一下api文档生成的代码.在此将重整过程记录下来,方 ...
- kubernetes发布tomcat服务,通过deployment,service布署(转)
1.制作tomcat镜像 参考docker tomcat镜像制作 此处直接拉取 查看已有可镜像 先设置docker阿里源,即添加 "registry-mirrors": [&quo ...
- 用mongodump以及mongorestore来完成mongo的迁移任务
首先粘贴官网说明: 详细请见:https://docs.mongodb.com/manual/ 在实际操作中,一般只需用到 mongodump -h ip:port -d dbName -o path ...
- Linux系统管理_主题02 :管好文件(1)_2.4 链接文件_ln
在 Linux 中,链接有两种:符号链接(symbolic link)和硬链接(hard link). 删除一个符号链接不会影响到这个符号链接指向的目标文件或目 录: 反过来,删除.移动或者重 ...
- CentOS里查看内存的使用
转自 http://blog.csdn.net/blueman2012/article/details/6904597
- C# Redis 缓存应用 主要代码及版本选择
/// <summary> /// RedisManager类主要是创建链接池管理对象的 /// </summary> public class RedisManager { ...
- APP安全_Android渗透环境
Android渗透 移动APP大多通过WEB API服务的方式与服务端进行交互,这种模式把移动安全和web安全绑在一起.常见的web漏洞在移动APP中也存在,比如SQL注入,文件上传,中间件/serv ...
- Mysql安装后在服务里找不到和服务启动不起来的解决方法
一,在安装完Mysql数据库后,发现在控制面板->管理->服务中找不到Mysql的服务启动 解决方法如下:开启命令行,按照如下步骤即可: 1.进入到mysql的安装包,在bin里执行:my ...