【问题标题】:How to use React with function component and hooks ONLY?如何仅将 React 与功能组件和钩子一起使用?
【发布时间】:2020-11-29 16:19:27
【问题描述】:

有一个 React 项目,其中一些组件以 Class 样式编写,而另一些组件以 Hooks 样式编写,这会使新手感到困惑,并且难以重用通用逻辑。有没有办法,例如:

  • Preact、Inferno 等替代库与 React 兼容,但仅支持 hooks
  • 或 ESLint 功能,每次有人尝试创建 React 类组件时都会发出警告
  • ...

为了防止我的开发人员编写 Class 组件,因为我希望我的 React 项目中的所有组件都是仅带有钩子的功能组件。

【问题讨论】:

标签: javascript reactjs class components react-hooks


【解决方案1】:

我还想要一个 lint 规则来实现这一点,所以我写了eslint-plugin-react-prefer-function-component

唯一不能写成函数组件的是那些实现componentDidCatch的组件,所以默认情况下允许实现该方法的组件。此选项是可配置的。

eslint-plugin-react/prefer-stateless-function(在其他答案中提到)允许具有状态或实现任何类方法的类组件。

【讨论】:

  • 是的,这就是我要找的。非常感谢!
【解决方案2】:

使用 eslint 的 react 插件 https://www.npmjs.com/package/eslint-plugin-react 并在你的 eslint 配置中设置 react/prefer-stateless-function 为 true

【讨论】:

  • 感谢您的回答。但是prefer-stateless-function lint 只警告无状态组件。我希望警告也显示有状态组件。因为我希望我的组件 100% 都是用带有钩子的函数编写的
猜你喜欢
  • 2023-03-25
  • 2020-02-13
  • 1970-01-01
  • 2021-04-07
  • 2021-04-13
  • 1970-01-01
  • 2020-01-28
  • 2020-11-19
  • 2017-01-16
相关资源
最近更新 更多