Может ли в React компонент класса быть без состояния, а теперь с хуками функциональный компонент с отслеживанием состояния?

До того, как были введены хуки, для меня существовало четкое различие между компонентами с сохранением состояния и без состояния. Однако с помощью React Hooks теперь можно с уверенностью сказать, что функциональные компоненты могут быть без состояния или с отслеживанием состояния в зависимости от того, как они используются (с сохранением состояния, например, при использовании useState и / или при использовании are Hooks)?

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

Я читал статьи о stackoverflow, касающиеся компонентов без состояния и с отслеживанием состояния (класс против функции), но на многие вопросы были даны ответы до React v16.8.


person rigel_betaOri    schedule 11.07.2019    source источник


Ответы (1)


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

Итак, чтобы ответить на ваш вопрос: да, как компоненты класса, так и функциональные компоненты могут быть как с сохранением состояния, так и без него. Однако с введением хуков разработчики React заявили, что, по их мнению, все компоненты в конечном итоге станут функциональными с помощью хуков, поэтому на вашем месте я бы попытался использовать функциональные компоненты.

person Chris Sandvik    schedule 11.07.2019
comment
Я использую крючки последних 3 месяцев, и они великолепны с функциональными компонентами. :) - person ma_dev_15; 11.07.2019