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.yuque.com/suihangadam
归来卧占楼千尺,梦落沧波明月舟。