require和import的区别

  ES6标准: 模块以export/export detault指令导出接口,以import引入模块。

  CommonJS规范: 使用require引入模块,使用module.exports/exports导出接口。

  在开发中一般使用Babel,将ES6转成CommonJS。

  CommonJS允许你动态加载require模块。甚至不需要赋值给某个变量之后再使用,比如:

require('./a')(); // a模块是一个函数,立即执行a模块函数
var data = require('./a').data; // a模块导出的是一个对象
var a = require('./a')[0]; // a模块导出的是一个数组

  你在使用时,完全可以忽略模块化这个概念来使用require,仅仅把它当做一个node内置的全局函数,它的参数甚至可以是表达式:

require(process.cwd() + '/a');

  但是ES6的import的则不同,它必须放在文件开头。它不会将整个模块运行后赋值给某个变量,而是只选择import的接口进行编译,这样在性能上比require好很多。

  import 具有声明提升效果,会首先执行。所以最好不要混用importrequire。 import 是 ES6 标准,如果可能,首先使用 import, 如果不行,就用require

  因为ES6 模块是标准,所以现在还是推荐使用import,避免未来不必要的更改。

参考网站:https://www.kancloud.cn/chandler/web_technology/480587#_moduleexports__moduleexports____66  

posted @ 2019-05-28 16:50  大豆F4  阅读(273)  评论(0)    收藏  举报