【ES6】export和important使用区别
export命令
export { name1, name2, …, nameN };
export { variable1 as name1, variable2 as name2, …, nameN };
export let name1, name2, …, nameN; // also var, function
export let name1 = …, name2 = …, …, nameN; // also var, const
export default expression;
export default function (…) { … } // also class, function*
export default function name1(…) { … } // also class, function*
export { name1 as default, … };
export * from …;
export { name1, name2, …, nameN } from …;
export { import1 as name1, import2 as name2, …, nameN } from …;
export命令 注意事项
1.使用export default命令,默认输出时,important命令可以为该匿名函数指定任意名字
// export-default.js
export default function () {
console.log('foo');
}
// import-default.js
import customName from './export-default';
2.使用export default时,对应的import语句不需要使用大括号否则对应的import语句需要使用大括号
// 第一组
export default function crc32() { // 输出
// ...
} import crc32 from 'crc32'; // 输入 // 第二组
export function crc32() { // 输出
// ...
}; import {crc32} from 'crc32'; // 输入
3.export defaut后面不能跟变量声明语句,因为export default命令的本质是将后面的值,赋给default变量,所以可以直接将一个值写在export default之后。
// 正确
export var a = 1; // 正确
var a = 1;
export default a; // 错误
export default var a = 1;
// 正确
export default 42; // 报错
export 42;
4.export命令规定的是对外接口,必须与模块名字一 一对应,但是可以通过as关键字更名
//与模块变量的名字一 一对应
function v1() { ... }
function v2() { ... } export {
v1 as streamV1,
v2 as streamV2,
v2 as streamLatestVersion
}; //对外接口
//错误写法 // 报错
export 1; // 报错
var m = 1;
export m; //正确写法 // 写法一
export var m = 1; // 写法二
var m = 1;
export {m}; // 写法三
var n = 1;
export {n as m};
import命令
import defaultExport from "module-name";
import * as name from "module-name";
import { export } from "module-name";
import { export as alias } from "module-name";
import { export1 , export2 } from "module-name";
import { export1 , export2 as alias2 , [...] } from "module-name";
import defaultExport, { export [ , [...] ] } from "module-name";
import defaultExport, * as name from "module-name";
import "module-name";
import命令注意事项
1.作用域提前
foo();
import { foo } from 'my_module';
2.import命令是静态执行,不能使用表达式和变量
// 报错
import { 'f' + 'oo' } from 'my_module'; // 报错
let module = 'my_module';
import { foo } from module; // 报错
if (x === 1) {
import { foo } from 'module1';
} else {
import { foo } from 'module2';
}
范例:
应用1:引入某个vue作为组件
import "@/styles/skill/index.scss";
import index from "@/utils/skill/index.js";
export default {
...index
};
相关资料:https://www.cnblogs.com/diligenceday/p/5503777.html
http://blog.csdn.net/zhou_xiao_cheng/article/details/52759632
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export
作者:smile.轉角
QQ:493177502
【ES6】export和important使用区别的更多相关文章
- es6 export及export default 的使用 及 区别
首先要知道export,import ,export default是什么 ES6模块主要有两个功能:export和importexport用于对外输出本模块(一个文件可以理解为一个模块)变量的接口i ...
- export ,export default 和 import 区别 以及用法
首先要知道export,import ,export default是什么 ES6模块主要有两个功能:export和importexport用于对外输出本模块(一个文件可以理解为一个模块)变量的接口i ...
- export ,export default 和 import 区别以及用法
首先要知道export,import ,export default是什么 ES6模块主要有两个功能:export和importexport用于对外输出本模块(一个文件可以理解为一个模块)变量的接口i ...
- es6 模块与commonJS的区别
在刚接触模块化开发的阶段,我总是容易将export.import.require等语法给弄混,今天索性记个笔记,将ES6 模块知识点理清楚 未接触ES6 模块时,模块开发方案常见的有CommonJS. ...
- CommonJS与ES6 Module的使用与区别
CommonJS与ES6 Module的使用与区别 1. CommonJS 1.1 导出 1.2 导入 2. ES6 Module 2.1 导出 2.2 导入 3. CommonJS 与 ES6 Mo ...
- js es6 map 与 原生对象区别
区别 object和Map存储的都是键值对组合.但是: object的键的类型是 字符串: map的键的类型是 可以是任意类型: 另外注意,object获取键值使用Object.keys(返回数组): ...
- ES6 find 和 filter 的区别
ES6 find 和 filter 的区别 : 遇到个功能是要分类就想说在前端过滤,不要从查数据库的时候过滤了.然后就想说除了filter还有啥好用的 发现有个find,测试一番之后发现 const ...
- ES5的继承和ES6的继承有什么区别?让Babel来告诉你
如果以前问我ES5的继承和ES6的继承有什么区别,我一定会自信的说没有区别,不过是语法糖而已,充其量也就是写法有区别,但是现在我会假装思考一下,然后说虽然只是语法糖,但也是有点小区别的,那么具体有什么 ...
- es6 export 和 export default区别
相信很多人都使用过export.export default.import,然而它们到底有什么区别呢? 在JavaScript ES6中,export与export default均可用于导出常量.函 ...
随机推荐
- hive -f 传递参数
hive -f 在执行sql脚本文件的时候是可以传递参数的,但是要注意hive版本: 注意:hive在0.9版本之前是不支持-f传递参数的,只有1.0之后才支持次功能. 使用如下: 1.创建sql脚本 ...
- 4. 泛型_EJ
第23条: 不要在新代码中使用原生态类型 声明中具有一个或多个类型参数的类或接口,就是泛型类或接口.每种泛型都定义一组参数化的类型,每个泛型都定义一个原生态类型.例如List<E>相对应的 ...
- 使用Vue-Router 2实现路由功能
转自:http://blog.csdn.net/sinat_17775997/article/details/54710420 注意:vue-router 2只适用于Vue2.x版本,下面我们是基于v ...
- Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本
脚本开发-利用loadrunner开发Windows Sockets协议脚本 by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 实践举例 Socket服务端简单实 ...
- PyCharm 如何新建Django工程项目
声明:本文使用的IDE是PyCharm 2018.1.2版. 一.File-New Project 二.选择工程类型 强烈建议选项"Pure Python",因为如果选择" ...
- [转] Scala Try 与错误处理
一.概述 当你在尝试一门新的语言时,可能不会过于关注程序出错的问题, 但当真的去创造可用的代码时,就不能再忽视代码中的可能产生的错误和异常了. 鉴于各种各样的原因,人们往往低估了语言对错误处理支持程度 ...
- java----八种排序算法
1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中. 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列. 对第四个数.第五个数……直 ...
- MyBatis笔记----Mybatis3.4.2与spring4整合:增删查改
结构图 刚之前没什么区别,多了一个applicationContext.xml 包图 由于之前出了一点错误,有些包可能多加上了 数据库图 model User.java package com.ij3 ...
- 记一次zookeeper单机伪集群分布
zookeeper的各版本(历史版本)下载地址:http://apache.org/dist/zookeeper/ 环境>:linux 下载的zookeeper解压成3个
- 虚拟机-linux系统中图形界面和命令行界面切换
linux系统中图形化界面和命令行界面之间的切换可以分为两种,临时性切换和永久性切换. 临时性切换即切换后只对本次生效,系统重启后界面还是默认界面. 永久性切换即切换后系统开机后永远处于的界面. 临时 ...