我目前正在使用Typescript开发 React 应用程序。当组件应提供带有引用的功能时,通常使用 public 方法(public focus() : void {...}
),但我无法确定组件的方法何时应为 private 和受保护的时。
我知道私有成员和受保护成员都可以从已转译的代码访问,因此在执行过程中可访问性基本上是相同的。所以我的问题是:作为最佳实践(写一个React组件),哪些方法应该标记为私有/受保护,为什么(事件处理程序,自定义处理程序,组件逻辑等)?
答案 0 :(得分:2)
这取决于开发人员的偏好。
所有应该公开使用的成员(包括生命周期挂钩)都可以设为public
,例如一种旨在通过React ref在外部调用的方法。根据{{3}},其余的可以做成protected
或private
。这适用于任何类,而不仅仅是React。选择可能取决于某个类是在内部使用还是作为库的一部分发布,可以根据当前需求轻松重构内部类,而对库的过度封装将使用户丧失用户可以从公共API中受益的方法
使用private
会阻止类的有效扩展。这在React中可能不是什么大问题,因为它提升了the principle of least privilege。
private
和protected
之间的选择是一个品味问题,基本上是精心封装和抢先可扩展性之间的选择。 protected
的使用更为合理,因为它提供了实际的好处,而缺点却很少。