React的keyMirror有什么好处?

nic*_*yer 16 javascript enums facebook reactjs

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

我明白了什么是这样,但我不相信我完全理解它提供的好处.然而,这可能表明我的理解是什么它是不完全正确!

我的理解是:

  1. 它产生了一个可枚举的.
  2. 可枚举通常用于函数语言,但在面向对象的代码中也很有用.
  3. 有益处微小虽然,我不知道我在这种情况下,完全理解这些.
  4. 比尔费舍尔表示,使用字符串代替常量并不是不合理的,当你有大量的常量时,真的会带来好处.

我想问题是,在中小规模的应用程序中,在keyMirror中定义一次常量,然后在两个不同的位置(操作和存储)中要求和引用它们提供与Strings相比的任何实际好处,仅在操作和存储中引用?

如果像Bill所说的那样,在一个地方查看常量列表会有所帮助,那么只保留一个带有字符串常量的txt文件的代码就更少了.

gus*_*gus 12

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

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

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

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