两者用法:
- node 的 commonJS 规范:
- require 引入模块
require('./xxx/xxx.js')
- module.exports 导出接口,导出一个对象
module.exports = {}
- require 引入模块
- es6 的标准:
- import 引入模块,有多种形式:
导入 jquery,命名为 $ import $ from 'jquery'; 导入 _ ,命名为 _ import * as _ from '_'; 导入 a 里面的 a , b , c 三个对象 import {a,b,c} from './a'; 导入 a 里面的 a 命名为 a_a,b,c import {a as a_a, b, c} from './a'; 下面两句意思一样: import alias from './a' import {default as alias} from './a'
- export 导出模块,也有多种形式:
导出一个函数 export default function() {} export function a () {} 下面两句意思一样: export {b} export { b : b} export 导出的时候必须与模块内部的变量具有一一对应的关系,比如下面就是错误的导出: export b;
- import 引入模块,有多种形式:
as关键字:
上面用到的 as 是取一个别名的意思,import ,export 都可以用,别名是 as 后面的名字
比如 jquery as $
default 关键字:
别名的语法糖,可以省去花括号,如果某个变量没有花括号也没有用 * 号关键字,可以还原成用 as 的写法
- export 时:
export default function() {} 等效于: function a() {}; export {a as default};
- import 时:
import a from './d'; 等效于 import {default as a} from './d';
require or import ?
require 简单粗暴,在哪里都能用,什么都能导,module.exports导出了什么,require 引入的就是什么,是一个赋值过程。
import 必须放在文件开头,是解构过程,性能比 require 好。