我目前正在使用 Typescript 开发一个 React 应用程序。当组件应该提供带有 ref 的功能时,通常使用 public 方法(public focus() : void {...}
),但我无法决定何时组件的方法应该是private 和protected。
我知道 private 和 protected 成员都可以从转换后的代码访问,所以在执行期间可访问性基本相同。所以我的问题是:作为最佳实践(关于 React 组件),哪些方法应该标记为私有(private)/ protected 以及为什么(事件处理程序、自定义处理程序、组件逻辑等)?
最佳答案
这取决于开发者的偏好。
所有应该公开可用的成员(包括生命周期 Hook )都可以设为public
,例如一种设计为使用 React ref 从外部调用的方法。根据 the principle of least privilege,其余部分可以设为protected
或 private
.这适用于任何类,而不仅仅是 React。选择可能取决于一个类是在内部使用还是作为库的一部分发布,内部类可以根据当前需求轻松重构,而过度封装在库中将剥夺用户可以在公共(public) API 中受益的方法.
private
的使用阻止了类的有效扩展。这在 React 中可能不是一个大问题,因为它提升了 composition over inheritance principle .
private
和protected
之间的选择是个人喜好问题,基本上是细致封装和抢占式扩展之间的选择。 protected
的使用更合理,因为它提供了实际的好处,而缺点很少。
关于reactjs - 何时在带有 React 的 Typescript 中使用私有(private)/ protected 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53153170/