Когда использовать закрытые / защищенные методы в Typescript с React - PullRequest
0 голосов
/ 05 ноября 2018

В настоящее время я работаю над приложением React с Typescript. Когда компонент должен предоставлять функциональность с ссылкой, обычно используют метод public (public focus() : void {...}), но я не могу решить, когда метод компонента должен быть private и когда защищенный .

Я знаю, что частные и защищенные члены доступны из переданного кода, поэтому доступность во время выполнения в основном одинакова. Поэтому, скорее, мой вопрос: как наилучшая практика (в отношении компонента React), какие методы следует помечать как закрытые / защищенные и почему (обработчики событий, пользовательские обработчики, логика компонентов и т. Д.)?

1 Ответ

0 голосов
/ 05 ноября 2018

Это зависит от предпочтений разработчика.

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

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

Выбор между private и protected - дело вкуса, в основном выбор между тщательной инкапсуляцией и преимущественной расширяемостью. Использование protected может быть более оправданным, поскольку оно дает практические преимущества, а недостатки встречаются редко.

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