在使用vue项目中都有用到require 和 import 来进行引入模块,这两个只有《JS模块化规范:AMD,CMD,CommonJS和ES6》有过稍微解过,具体有什么区别,笔者有去了解了一下。
无论是require 还是 import 都是不同规范下导入模块的方法,主要有以下的区别:
1、require对应导出的方法是module.exports,
import对应的方法是export default/export
2、require 是CommonJs的语法
import 是 ES6 的语法标准。
3、require是运行运行时加载模块里的所有方法(动态加载),
import 是编译的时候调用(静态加载),不管在哪里引用都会提升到代码顶部。
4、require 是CommonJs的语法,引入的是的是整个模块里面的对象,
import 可以按需引入模块里面的对象
5、require 导出是值的拷贝,
import 导出的是值的引用
(这个具体可以参考:《如何正确证明 Commonjs 模块导出是值的拷贝,而 ES module 是值的引用?》)