Это зависит от предпочтений разработчика.
Все участники, которые должны быть общедоступными (включая хуки жизненного цикла), могут быть сделаны public
, например. метод, предназначенный для внешнего вызова с React ref. Остальные могут быть сделаны protected
или private
, согласно принципу наименьших привилегий . Это относится к любому классу, а не только к React. Выбор может зависеть от того, используется ли класс внутренне или опубликован как часть библиотеки, внутренние классы могут быть легко реорганизованы в соответствии с текущими потребностями, в то время как чрезмерная инкапсуляция в библиотеке лишит пользователя методов, которые пользователь мог бы использовать в публичном API. .
Использование private
препятствует эффективному расширению класса. Это может не быть большой проблемой в React, потому что он продвигает композицию по принципу наследования .
Выбор между private
и protected
- дело вкуса, в основном выбор между тщательной инкапсуляцией и преимущественной расширяемостью. Использование protected
может быть более оправданным, поскольку оно дает практические преимущества, а недостатки встречаются редко.