require 和 import 的区别?

require 和 import 的区别?

遵循的规范不一样

1.require/exports是CommonJS的一部分npm

2.import/export是ES6新规范bash

出现时间不一样

CommonJS 做为 Node.js 的规范,一直沿用至今。因为 npm 上 CommonJS 的类库众多,以及 CommonJS 和 ES6 之间的差别,Node.js 没法直接兼容 ES6。因此现阶段 require/exports 仍然是必要且是必须的。ui

形式不一样

require/exports 的用法只有如下三种:spa

const fs = require('fs');
 exports.fs = fs;
 module.exports = fs;
复制代码

import/export的写法就多种多样code

import fs from 'fs';
import {default as fs} from 'fs';
import * as fs from 'fs';
-----------------------------
export default fs;
export const fs;
export * from 'fs';
复制代码

本质上的不一样

1.CommonJS仍是ES6 Module 输出均可以当作是一个具有多个属性或者方法的对象;对象

2.default 是ES6 Module所独有的关键字,export default 输出默认的接口对象,import from 'fs'可直接导入这个对象;接口

3.ES6 Module中导入模块的属性或者方法是强绑定的,包括基础类型;而 CommonJS 则是普通的值传递或者引用传递。string

相关文章
相关标签/搜索