Каковы преимущества React keyMirror?

Недавно я работал над несколькими учебными материалами React, особенно теми, которые используют архитектуру Flux. Все эти учебники использовали react/lib/keymirror в различных формах.

Я понимаю , что, но я не уверен, что полностью понимаю преимущества, которые он предоставляет. Тем не менее, это может показаться, что мое понимание того, что он делает, не совсем корректно!

Мое понимание:

  • Он производит перечислимый.
  • Перечисления обычно используются в функциональных языках, но также полезны в объектно-ориентированном коде.
  • Есть преимущества minification, хотя я не уверен, что полностью понимаю их в этом случае.
  • Билл Фишер утверждает, что было бы нецелесообразно использовать Strings вместо констант, и это действительно выгодно, когда вы большое количество констант.

Я полагаю, что вопрос в приложениях с малым и средним масштабом делает определение констант один раз в ключевом зеркале, а затем требует и ссылается на них в двух разных местах (действиях и хранилищах), обеспечивая любую осязаемую выгоду по сравнению со строками, на которые ссылаются только в действиях и магазины?

Если, как говорит Билл, это помогает увидеть список констант в одном месте, все равно будет меньше кода, чтобы просто сохранить txt файл со строковыми константами, указанными там.

Ответ 1

Вам нужно будет подождать, пока кто-нибудь из команды React подтвердит это, но я предполагаю, что одна причина состоит в том, что их строковые литералы в бизнес-логике не поощряются их руководством по стилю. В ситуациях, когда многие разработчики работают над одним и тем же кодом, если логика построена путем установки и проверки жестко закодированных строк, менее очевидно, куда искать источник любого термина.

Вторая причина связана, но некоторые IDE позволят вам автоматически находить, заполнять или рефакторировать имена свойств, но не буквенные строки. Наличие строки, определенной в одном месте, значительно упрощает эти рабочие процессы.

Наконец, лучшая оптимизация возможна, поскольку все перечислимые ссылки могут обрабатываться UglifyJS, которые могут переименовать символ короче, не затрагивая ни разборчивость кода dev, ни надежность любых ссылок.

Поэтому я бы сказал, что для любых, но небольших краткосрочных приложений, перемещение литеральных строк в хорошо организованные постоянные объекты - хорошая идея. KeyMirror - это всего лишь один вид помощника для этого, который гарантирует, что значения свойств будут соответствовать ключам. Я считаю, что это так, что вы можете повторно использовать значение любого свойства в качестве действительного ключа.