export 用来导出模块,Vue 的单文件组件通常需要导出一个对象,这个对象是 Vue 实例的选项对象,以便于在其它地方可以使用 import 引入。

export 和export default 的区别在于:

export 可以导出多个命名模块。如下:

//demo1.js
export const thisstr = 'hello world';
export function f(count){
return count+1;
}
其他模块可以通过import { thisstr, f } from 'demo1' 导入,其中用大括号括起来。
export default 只能导出一个默认模块,这个模块可以匿名,如下:
//demo1.js
export default {
        a: 'hello',
        b: 'world'      
  }


对应的引入方式:

//demo2.js
import obj from 'demo1',引入的时候可以给这个模块取任意名字,例如 “obj”,且不需要用大括号括起来。i**************************

一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。import命令接受一对大括号,里面指定要从其他模块导入的变量名。大括号里面的变量名,必须与被导入模块(xxx.js)对外接口的名称相同。如果想为输入的变量重新取一个名字,import命令要使用as关键字,将输入的变量重命名。

使用import命令的时候,用户需要知道所要加载的变量名或函数名,否则无法加载。但用户希望快速上手,未必愿意阅读文档,去了解模块有哪些属性和方法。为了给用户提供方便,让他们不用阅读文档就能加载模块,就要用到export default命令,为模块指定默认输出。本质上,export default就是输出一个叫做default的变量或方法,然后系统允许你为它取任意名字。

export命令对外接口是有名称的且import命令从模块导入的变量名与被导入模块对外接口的名称相同,而export default命令对外输出的变量名可以是任意的,这时import命令后面,不使用大括号。

export default命令用于指定模块的默认输出。显然,一个模块只能有一个默认输出,因此export default命令只能使用一次。所以,import命令后面才不用加大括号,因为只可能唯一对应export default命令。