关于ES6导入的非常基本的问题。我们为什么要导出模块然后将其导入另一个JS文件?我们这样做有什么好处?如果不进行导出和导入,还有什么其他方法(即使它是粗糙的)?换句话说,如果我在ES5上工作,我将如何进行导出和导入?
谢谢!
答案 0 :(得分:4)
为什么要导出模块然后将其导入另一个JS文件?我们有什么好处呢?
模块的重点是为开发人员提供一种方便,简洁的方法,将代码组织成可重用或可共享的模块。因此,使用模块的关键是以模块化方式开发代码。
模块可以:
虽然所有这些都可以在没有语言定义的结构的情况下完成,但人们可能会采用许多不同的方式来实现这一目标,并且为这些优势构建代码的人数要少得多。
通过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的有用文章,有关该主题的更多信息?