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 没有任何好处。 constvar 一样,最大的区别是“常量”是只读的,它与导入或需要无关? 好处是保存模块的变量不能更改,是只读的 【参考方案1】:

当然,主要区别在于较旧的 require 与较新的“导入”, (因为它可以是 var 而不是 'const',没关系)。

requireimport 均有效且受支持, 一些开发人员可能想知道使用哪个。 通常,最好在团队内部同意使用具有严格模式和精确其他 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 有啥区别?

引用变量和 const 指针变量有啥区别? [复制]

f(const string &) 和 f(const string) 有啥区别吗?

const funcName = (args) => ; 有啥区别?和 const funcName = (args) => ( );? [复制]

(const_cast<char*> 和没有之间有啥区别?

`*const T` 和 *mut T` 原始指针有啥区别?