Почему create-реакции-приложение изменило компонент App.js на компонент на основе функций? - PullRequest
0 голосов
/ 24 сентября 2019

Как я заметил, похоже create-react-app изменил app.js компонент класса, основанный на компоненте функции,

есть идеи, почему они это сделали?

1 Ответ

3 голосов
/ 24 сентября 2019

Сам React отходит от компонентов на основе классов.

Цитаты из этого документа: Представляем хуки

В дополнение к повторному использованию кода иОрганизация кода сложнее, мы обнаружили, что классы могут стать серьезным препятствием для изучения React.Вы должны понимать, как это работает в JavaScript, который сильно отличается от того, как это работает в большинстве языков.Вы должны помнить, чтобы связать обработчики событий.Без нестабильных синтаксических предложений код очень многословен.Люди могут прекрасно понимать реквизиты, состояние и нисходящий поток данных, но все еще борются с классами.Различие между компонентами функций и классов в React и тем, когда их использовать, приводит к разногласиям даже между опытными разработчиками React.

Кроме того, React отсутствует уже около пяти лет, и мы хотим убедиться, что он остается актуальным.в ближайшие пять лет.Как показывают Svelte, Angular, Glimmer и другие, преждевременная компиляция компонентов имеет большой потенциал в будущем.Особенно, если это не ограничено шаблонами.Недавно мы экспериментировали со свертыванием компонентов с использованием Prepack и получили многообещающие ранние результаты.Однако мы обнаружили, что компоненты класса могут стимулировать непреднамеренные шаблоны, которые заставляют эти оптимизации возвращаться к более медленному пути.Классы также представляют проблемы для современных инструментов.Например, классы не очень хорошо минимизируются, а горячая перезагрузка делает их ненадежными и ненадежными.Мы хотим представить API, который повысит вероятность того, что код останется на оптимизируемом пути.

Для решения этих проблем хуки позволяют вам использовать больше функций React без классов.Концептуально компоненты React всегда были ближе к функциям.Крючки охватывают функции, но не жертвуя практическим духом React.Крючки обеспечивают доступ к обязательным аварийным люкам и не требуют от вас изучения сложных функциональных или реактивных методов программирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...