说说require 和 import 的区别

在使用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 是值的引用?》)

你可能感兴趣的:(说说require 和 import 的区别)