es6中export、export default、import的理解
export 与 import 的使用
export 与import是es6中新增模块功能最主要的两个命令。我们要知道在es6中,实现了模块功能,而且相当简单,意在取代commonjs和AMD规范。成为一种模块化的通用解决方案。
其设计思想为尽量的静态化,我们可以理解为在加载之前就知道自己所需要依赖的是哪个文件,而非在运行的时候才知道依赖谁。es6的那模块不是对象,通过export输出指令,通过import输入。就目前来说 不用一些编译器的话 最新版的浏览器是不识别import这个关键字的
在es6模块中是自动采用严格模式的。具体条例我们可以参考阮一峰老师写的es6入门中的moule模块
最简单的使用:
我是在vue-cli脚手架中进行验证,因为其环境支持es6的语法
首先在src下面新建一个export文件夹 里面新建两个js 分别为a.js,b.js
a.js里面最简单的代码:
1
|
export var a = 'my name is xiaoming' ; |
然后一定要在hello模板中import该js,这里的路径是我自己配置的一些模板,新建的vue-cli中应该是hello模板
1
2
|
import {a} from '../../export/a.js' ; console.log(a) |
from后面的路径要写对 然后不能写到app.vue或者main.js中因为是入口文件 里面import都是各种依赖包
其中{}是一定要有的
export多个文件
1
2
|
var a= 'my name is xiaoming' ,b= 'my name is xiaohong' ; export {a,b} |
然后import
1
2
|
import {a,b,} from '../../export/a.js' ; console.log(a,b) |
如果不想暴露变量的名称:使用as可以重命名关键字
1
2
|
var a= 'my name is xiaoming' ,b= 'my name is xiaohong' ; export {a as x, b as y} |
export default 的用法
export 之后加上default意指默认接口的意思,在一个文件里面默认的只能有一个 其区别就是{} 在export中 引入需要用{}来盛放
1
2
|
var a= 'my name is xiaoming' export default a; |
1
|
import a from '../../export/a.js' ; |
要是多个变量
1
2
|
var a= 'my name is xiaoming' ,b= 'this is a bird' ; export default {<br> a,b<br>}; |
在需要使用的js中
1
|
import anyoneword from '../../export/a.js' <br>console.log(anyoneword) //一个对象里面包含a,b两个变量。 |
是不是发现和vue组件很像。
总结 其中export和export default最大的区别就是export不限变量数 可以一直写,而export default 只输出一次 而且 export出的变量想要使用必须使用{}来盛放,而export default 不需要 只要import任意一个名字来接收对象即可。
export default可以跟在非匿名函数之前,也可以跟在匿名函数之前,同时也可以是一个对象之前。
import
import '**' from 'vue'直接寻找的是依赖包里的文件
如果import '**' from './vue' 表示是同级文件下的js。
es6中export、export default、import的理解的更多相关文章
- JavaScript ES6中,export与export default
自述: 本来是对new Vue()和export default比较懵的,查了一下,发现我理解错了两者的关系,也没意识到export与export default的区别,先简单的记录一下基本概念,后续 ...
- ES6中的export,import ,export default
ES6模块主要有两个功能:export和importexport用于对外输出本模块(一个文件可以理解为一个模块)变量的接口import用于在一个模块中加载另一个含有export接口的模块.也就是说使用 ...
- ES6中的export和import
1.ES6中的模块加载 ES6 模块是编译时加载,编译时就能确定模块的依赖关系,以及输入和输出的变量,相比于CommonJS 和 AMD 模块都只能在运行时确定输入输出变量的加载效率要高. 1.1.严 ...
- ES6中的export以及import的使用多样性
模块功能主要由两个命令构成:export和import.export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能. 一.export导出模块使用部分的几种方式 一个模块就是一 ...
- 关于var和ES6中的let,const的理解
var的作用就不多说了,下面说说var的缺点: 1.var可以重复声明 var a = 1; var a = 5; console.log(a); //5 不会报错 在像这些这些严谨的语言来说,一般是 ...
- es6中class类的全方面理解(一)
传统的javascript中只有对象,没有类的概念.它是基于原型的面向对象语言.原型对象特点就是将自身的属性共享给新对象.这样的写法相对于其它传统面向对象语言来讲,很有一种独树一帜的感脚!非常容易让人 ...
- es6中class类的全方面理解
传统的javascript中只有对象,没有类的概念.它是基于原型的面向对象语言.原型对象特点就是将自身的属性共享给新对象.这样的写法相对于其它传统面向对象语言来讲,很有一种独树一帜的感脚!非常容易让人 ...
- 解决es6中webstrom不支持import的一个简单方法
代码如下: export_one.js的代码如下: export function one() { console.log('one'); } export function two() { cons ...
- JavaScript ES6中export、import与export default的用法和区别
前言 相信很多人都使用过export.export default.import,然而它们到底有什么区别呢? 在看他们之间的区别之前,我们先来看看它们的用法. ES6 import和export的用法 ...
- JavaScript ES6中export及export default的区别以及import的用法
本文原创地址链接:http://blog.csdn.net/zhou_xiao_cheng/article/details/52759632,未经博主允许不得转载. 相信很多人都使用过export.e ...
随机推荐
- Maven配置本地仓库
当我们在myeclipse中update maven时可能会报错User setting file does not exist C:\Users\lenevo\.m2\setting.xml,以致于 ...
- Running Bitvise SSH Client as a Windows Service
It is possible to run a Windows program as a system service. The advantage of services is that they ...
- libcurl 调用curl_easy_getinfo( ) 返回错误码对照
//执行设置好的操作 res = curl_easy_perform(easy_handle); //获取HTTP错误码 ; curl_easy_getinfo(easy_handle, CURLIN ...
- 代替Reflection(反射)的一些方法(转)
作者:JustRun 林肯: http://www.cnblogs.com/JustRun1983/p/3830764.html 代替Reflection(反射)的一些方法(转) 2014-07-08 ...
- ColorMask
[ColorMask] When using multiple render target (MRT) rendering, it is possible to set up different co ...
- xshell评估过期解决办法
1.登录网景官网的下载页面: https://www.netsarang.com/download/down_form.html?code=522 2.直接在页面中有红色*号的地方输入个人信息,lic ...
- 单源最短路:Bellman-Ford算法 及 证明
描述: 求图中某一点到其他任一点的最短距离. 操作: 1. 初始化 结果保存在一个dist数组里,源点的结果初始化为0,其他初始化为无穷大(如INT32_MAX). 2. 计算: 两重for循环,第一 ...
- 转载《Spring AOP中pointcut expression表达式解析 及匹配多个条件》
原文地址:https://www.cnblogs.com/rainy-shurun/p/5195439.html 原文 Pointcut 是指那些方法需要被执行"AOP",是由&q ...
- 获取openid回调两次
解决了好久,请教了各路大神也没找到解决方案. 最后灵感一现,是不是参数顺序问题?按照官网示例的先后顺序从新调用了一次,回调一次,成功解决. 官网文档:https://mp.weixin.qq.com/ ...
- MongoServerSettings Members
The MongoServerSettings type exposes the following members. Constructors Name Description MongoSer ...