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 ...
随机推荐
- XACT Q&A (转)
XACT Q&A 传送门:http://blog.csdn.net/xoyojank/article/details/4098633
- LUA ipairs遍历的问题
t = { 1, 2, 3, nil, 4,} for k, v in ipairs(t) doprint(k, v)end print("------------------------- ...
- Spring Cloud Bus实现自动更新配置
一.概述 1. 配置环境 版本:Spring Boot版本2.0.3.RELEASE,Spring Cloud版本Finchley.SR1,RabbitMQ 3.7.7 说明:本文章是在https:/ ...
- write()和print()还有<%= %>的细微区别
1.首先介绍write()和print()方法的区别: (1).write():仅支持输出字符类型数据,字符.字符数组.字符串等 (2).print():可以将各种类型(包括Object)的数据通过默 ...
- react-navigation 3.x版本的安装以及react-native-gesture-handler配置
一.安装依赖,使用npm或yarn命令,3.x版本必须安装react-native-gesture-handler react-navigation react-native-gesture-hand ...
- js 倒计时功能,获取当前时间的年月日,时分秒
一.实现当前时间到指定截止时间的倒计时功能 <html> <head> <title>TEST</title> </head> <bo ...
- 28-python 中格式对齐之中文格式对齐问题
一般的可以按这个搞,但是中文就会有问题: python基础_格式化输出(%用法和format用法) 对于 print('1234567890' * 10)print('%10s' % '今天好')pr ...
- android textview 显示一行,且超出自动截断,显示"..."
android textview 显示一行,且超出自动截断,显示"..." <TextView android:layout_width="wrap_content ...
- Oracle GoldenGate 一、介绍和安装
1 说明 1.1 下载和文档说明 下载地址:http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html 我 ...
- js的prototype(2)
1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原型为A. 2 javasc ...