import 和 const 有啥区别,在 commonjs 中哪个是首选
Posted
技术标签:
【中文标题】import 和 const 有啥区别,在 commonjs 中哪个是首选【英文标题】:what is the difference between import and const and which is preferred in commonjsimport 和 const 有什么区别,在 commonjs 中哪个是首选 【发布时间】:2016-04-08 16:21:16 【问题描述】:我注意到使用 const 和 import 在使用 es6 语法和 Babel 的 node.js 应用程序中引用库之间存在一些切换。
首选方法是什么,使用 const 和 import 有什么区别?假设您可能在许多文件/组件中导入同一个库。
常量
const React = require('react')
导入
import React from 'react'
这是每个的定义,但我仍然不确定使用哪个。
import
import 语句用于导入从外部模块、另一个脚本等导出的函数、对象或原语。
const
const 声明创建一个对值的只读引用。这并不意味着它持有的值是不可变的,只是变量标识符不能被重新分配。
【问题讨论】:
第二个来自标准(ES2015),第一个没有。 你真正要问的是 Node 的 require 和 ES2015 import 之间的区别是什么,这使它成为duplicate 没有任何好处。const
和var
一样,最大的区别是“常量”是只读的,它与导入或需要无关?
好处是保存模块的变量不能更改,是只读的
【参考方案1】:
当然,主要区别在于较旧的 require
与较新的“导入”,
(因为它可以是 var
而不是 'const',没关系)。
require
和 import
均有效且受支持,
一些开发人员可能想知道使用哪个。
通常,最好在团队内部同意使用具有严格模式和精确其他 ES 功能的更新的“导入”。
赞成和反对意见在Using Node.js require vs. ES6 import/export
【讨论】:
【参考方案2】:首选方法是什么,使用 const 和 import 有什么区别?
在 2016 年,坚持使用 import
是有意义的,因为这是标准的一部分。
没有技术上的理由更喜欢import
而不是require
:可以使用require
完成的所有事情都可以使用import
完成,反之亦然。在某些情况下,一种会更简洁,而另一种会更简洁。
总结:选择一个符合项目代码约定/一致性的。
【讨论】:
谢谢,我将使用import
。我只是感到困惑,因为一些 redux 库和示例正在使用 const
方法,我认为它是只读的。正如您在 cmets 中提到的,无法更改导入的标识符,这意味着没有优势。由您自己提供的很好的链接 here 和 @adeneo here 帮助澄清它
const
方法的主要好处是它可以在 Node 4/5 中工作而无需转译,这可能就是您在那些中看到它的原因。以上是关于import 和 const 有啥区别,在 commonjs 中哪个是首选的主要内容,如果未能解决你的问题,请参考以下文章
const Class & 和 Class const 有啥区别?
f(const string &) 和 f(const string) 有啥区别吗?
const funcName = (args) => ; 有啥区别?和 const funcName = (args) => ( );? [复制]