reactjs - 何时在带有 React 的 Typescript 中使用私有(private)/ protected 方法

标签 reactjs typescript access-modifiers

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

我知道 private 和 protected 成员都可以从转换后的代码访问,所以在执行期间可访问性基本相同。所以我的问题是:作为最佳实践(关于 React 组件),哪些方法应该标记为私有(private)/ protected 以及为什么(事件处理程序、自定义处理程序、组件逻辑等)?

最佳答案

这取决于开发者的偏好。

所有应该公开可用的成员(包括生命周期 Hook )都可以设为public,例如一种设计为使用 React ref 从外部调用的方法。根据 the principle of least privilege,其余部分可以设为protectedprivate .这适用于任何类,而不仅仅是 React。选择可能取决于一个类是在内部使用还是作为库的一部分发布,内部类可以根据当前需求轻松重构,而过度封装在库中将剥夺用户可以在公共(public) API 中受益的方法.

private 的使用阻止了类的有效扩展。这在 React 中可能不是一个大问题,因为它提升了 composition over inheritance principle .

privateprotected 之间的选择是个人喜好问题,基本上是细致封装和抢占式扩展之间的选择。 protected 的使用更合理,因为它提供了实际的好处,而缺点很少。

关于reactjs - 何时在带有 React 的 Typescript 中使用私有(private)/ protected 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53153170/

相关文章:

ruby-on-rails - 在 Heroku 上使用 Rails API 部署 Create-React-App

javascript - 延迟父组件渲染,直到所有子组件渲染 reactjs

angular - 如何从 typescript 中的绝对类型访问这些功能?

javascript - 循环 json 时出现未定义的值

javascript - 字符串转 UTF8 转 SHA256 转 BASE64

C# 内部访问修饰符

reactjs - 如何管理具有许多独立小部件的大型 React/Redux 项目

javascript - React Native - 在同一个对象中引用键?

c++ - 非公共(public)类型的公共(public)别名

java - protected /公开的内部类