export和import 输出/接收模块变量的接口
require 和 import 的区别
- require 方法是 CommonJs 推出的,NodeJs 自带了这个功能。而 import 是 ES6 推出的
- CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。
- CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。【CommonJS 模块的require()是同步加载模块,ES6 模块的import命令是异步加载,有一个独立的模块依赖的解析阶段。】
ES6模块主要有两个功能:export 和 import
export:用于对外输出本模块(一个文件可以理解为一个模块)变量的接口
import:用于在一个模块中加载另一个含有export接口的模块。 (语法:import { name } from "/.a.js" //路径根据你的实际情况填写)
也就是说使用export命令定义了模块的对外接口以后,其他JS文件就可以通过import命令加载这个模块(文件)。
导出的方式3种
1.export let a = 10;
2.export { a, b };
1和2,他们引入的时候都要加{},并且名字必须要和导出的一致,他们可以有多个。比如 `import { a, b } from './xxx.js'`
或者: import * as Types from './action-types';
3.export default
一个文件中只能有一个,并且default之后,引入的时候不能加{}。名字还可以随便起。也可以default一个对象(批量导出)
let a = 20; // export default a; export default{ a, fn(){alert(1)}, b=20, }
// import 变量名 from '模块'