Pull to refresh

Comments 8

UFO landed and left these words here
camelCase считается нормой, а большая буква в имени каталога/файла, как правило, говорит о том, что там лежит компонент
Имена классов пишутся с большой буквы — в реакте каждый компонент экземпляр класса (кроме pure-components) — поэтому и папка с названием компонента пишется с большой буквы

Вы, скорее всего, имели в виду функциональные компоненты, т.к. React.PureComponent это тоже класс. В последнее время популярность функциональных компонентов растет, так что ваш комментарий можно прочитать как "В реакте все компоненты, это классы, кроме половины (или более)", что немного странно.
Точно так же, имена классов не обязаны начинаться с заглавной буквы, а вот имена реакт компонентов напротив — документация говорит о том, что в JSX элементы с именами, начинающимися с маленькой буквы, рассматриваются как html-теги.

Style guide от airbnb рекомендует использовать CamelCase для именования файлов компонентов.
Если не ошибаюсь большинство react разработчиков следует этой рекомендации.
Лично я для именования файлов использую kebab-case, так как все компоненты держу в папке components. И пока не испытываю с этим проблем
Это конечно прекрасно, что вы наваяли очередной todo, но ценность этого экспириенса в виде статьи — на мой взгляд, сомнительна.

Опять же, говорить про MobX в связке c react — на мой взгляд, не стоит потраченных на это букв. MobX «изкоробочно» работает с react. На этом можно и закончить — связывание абстракций MobX и реактовского цикла жизни компонентов — это самое костыльное место всей MobX, и работать оно работает, но весьма себе таким черезжопным образом.

ЗЫ: Зато MobX хорош сам по себе, как набор хороших простых абстракций реактивного программирования.
Использую TypeScript с самыми лайтовыми настойками (allowJs, noImplicitAny, ...) — получается что-то вроде опциональной типизации, идеально если переходите с чистого JavaScript. Минимум лишнего кода, уже отлавливает многие ошибки на этапе статического анализа, и всегда можно сделать более строго в особо ответственных частях программы.
this.setState({name: 'another string', () => {
    alert(this.state.name);
}});

будет работать
Sign up to leave a comment.

Articles