ES6进口声明的好处

时间:2017-01-13 06:10:17

标签: javascript import ecmascript-6 export

关于ES6导入的非常基本的问题。我们为什么要导出模块然后将其导入另一个JS文件?我们这样做有什么好处?如果不进行导出和导入,还有什么其他方法(即使它是粗糙的)?换句话说,如果我在ES5上工作,我将如何进行导出和导入?

谢谢!

1 个答案:

答案 0 :(得分:4)

  

为什么要导出模块然后将其导入另一个JS文件?我们有什么好处呢?

模块的重点是为开发人员提供一种方便,简洁的方法,将代码组织成可重用或可共享的模块。因此,使用模块的关键是以模块化方式开发代码。

模块可以:

  1. 轻松分享项目。
  2. 独立测试。
  3. 拥有自己的命名空间和范围,并且可以拥有私有变量。
  4. 为代码体提供清晰明确的界面。
  5. 可以使用代码加载机制连接以加载代码片段。
  6. 虽然所有这些都可以在没有语言定义的结构的情况下完成,但人们可能会采用许多不同的方式来实现这一目标,并且为这些优势构建代码的人数要少得多。

    通过NPM提供数千个模块,node.js开发可以非常清楚地看到这些好处。如果没有每个人都订阅的标准模块设计,那么分享大量代码片段并不容易。 ES6模块系统试图使这种机制标准化。

      

    如果我在ES5上工作,我该如何进行导出和导入?

    您必须要么找到第三方模块系统(在ES6之前的日子里有很多,比如AMD或CommonJS),或者建立自己的或者没有,可能会放弃上面的一些好处。 node.js模块系统是在Javascript语言标准之外设计的一个这样的系统。因为它是内置到node.js中的,并且是node.js项目加载多个源文件的主要机制,所以它成为了node.js开发的事实标准。

    或者,您现在可以使用像Babel这样的转换程序,它可以让您在ES6中编写代码,并且会将它转换为与ES5兼容的代码。你添加一个" build"步入适合构建过程的代码类似于编译另一种语言(除了你正在进行转换而不是编译)并且你在ES6中获得了编写和调试的优势,但你的代码保持与ES5运行时引擎的兼容性(例如旧浏览器),只有一些限制。

    这是关于Why Modules的有用文章,有关该主题的更多信息?