React的keyMirror有什么好处?

时间:2015-07-10 16:30:49

标签: javascript facebook enums reactjs

我最近参与了许多React教程,特别是那些采用Flux架构的教程。所有这些教程都以各种形式使用了react/lib/keymirror

我理解它的作用,但我不相信我完全理解它提供的好处。但是,这可能表明我对它所做的的理解并不完全正确!

我的理解是:

  1. 它产生enumerable
  2. Enumerables通常用于函数式语言,但在object-orientated code中也很有用。
  3. minification有好处,但我不确定在这种情况下我是否完全理解这些。
  4. Bill Fisher表示使用字符串代替常量并不是不合理的,当你有大量的常量时,真的会带来好处。
  5. 我认为问题是,在中小规模的应用程序中,在keyMirror中定义一次常量,然后在两个不同的位置(操作和存储)中要求和引用它们提供与Strings相比的任何实际好处,仅在操作中引用和商店?

    正如Bill所说,如果在一个地方看到一个常量列表会有所帮助,那么保留一个带有字符串常量的txt文件的代码仍然会少一些。

1 个答案:

答案 0 :(得分:12)

你必须等待来自React团队的人确认这一点,但我猜测一个原因是因为他们的风格指南不鼓励业务逻辑中的常量字符串文字。在许多开发人员使用相同代码的情况下,如果通过设置和检查硬编码字符串来构建逻辑,那么在哪里查找任何术语的来源就不那么明显了。

第二个原因是相关的,但某些IDE会让您自动查找,完成或重构属性名称,但不能自动查找文字字符串。在一个地方定义字符串可以使这些工作流程更加容易。

最后,可以进行更好的优化,因为UglifyJS可以处理所有可枚举的引用,它可以将符号重命名为更短,而不会影响dev代码的易读性或任何引用的健壮性。

所以我会说除了小的短期应用之外,将文字字符串移动到组织良好的常量对象中是一个好主意。 KeyMirror只是一种帮助,可以保证属性值与键匹配。我相信这样你就可以将任何属性的值重新用作有效密钥。