Reactjs 何时在带有React的Typescript中使用私有/受保护方法

Reactjs 何时在带有React的Typescript中使用私有/受保护方法,reactjs,typescript,access-modifiers,Reactjs,Typescript,Access Modifiers,我目前正在使用Typescript开发一个React应用程序。当组件应该提供带有ref的功能时,通常使用public方法(public focus():void{…}),但我无法决定组件的方法何时应该是private以及何时受保护 我知道私有和受保护的成员都可以从传输的代码中访问,因此在执行期间,访问性基本相同。因此,我的问题是:作为最佳实践(wrt.a React组件),哪些方法应该标记为私有/受保护,以及为什么要标记为私有/受保护(事件处理程序、自定义处理程序、组件逻辑等) 这取决于开发者的

我目前正在使用Typescript开发一个React应用程序。当组件应该提供带有ref的功能时,通常使用public方法(
public focus():void{…}
),但我无法决定组件的方法何时应该是private以及何时受保护


我知道私有和受保护的成员都可以从传输的代码中访问,因此在执行期间,访问性基本相同。因此,我的问题是:作为最佳实践(wrt.a React组件),哪些方法应该标记为私有/受保护,以及为什么要标记为私有/受保护(事件处理程序、自定义处理程序、组件逻辑等)

这取决于开发者的偏好

所有本应公开的成员(包括生命周期挂钩)都可以设置为
公共
,例如,设计为使用React ref从外部调用的方法。其余成员可以设置为
受保护
私有
,具体取决于。这适用于任何类,而不仅仅是React。选择可能取决于类是在内部使用还是作为库的一部分发布,内部类可以根据当前需要轻松重构,而库中过度的封装将剥夺用户在公共API中可以受益的方法

使用
private
会阻止类的有效扩展。这在React中可能不是一个大问题,因为它会促进


private
protected
之间进行选择是一个品味问题,基本上是在精心封装和抢占式扩展之间进行选择。使用受保护的可能更合理,因为它提供了实际的好处,而缺点很少。

感谢您对这一点的详细解释。