import和require区别

相同点:

作用和行为上基本一致,都是以阻塞的方式载入模块

 

区别:

 

require

import

加载

运行时加载(即动态加载)

在编译时加载(即静态加载)

导入

导入整个模块对象,不能仅导入部分内容

可以导入模块中的所有导出内容或者部分导出内容

导出

module.export 之后,导出的值就不能再变化(输出值的拷贝)

export之后导出的值可以变化(输出值的映射)

 

 

书写位置

可以写在代码任何地方执行比如if判断当中

必须写在文件的顶部

性能

性能较低,因为require是在运行时才引入模块并且还赋值给某个变量

性能较高,因为import只需要依据import中的接口在编译时引入指定模块所以性能稍高

 

 

值的拷贝和值的映射示例:

var a = 6
export default {a}
a = 7  //在es6中的export可以
var a = 6
module.export = a
a = 7   //在common.js中,这样是错误的

 

原文地址:https://www.cnblogs.com/suihang/p/12835365.html