拥有一个React项目,其中一些组件以Class风格编写,而其他组件则以Hooks风格编写,这使新来者感到困惑,并且更难以重用常见的逻辑。有没有办法,例如:
防止开发人员编写Class组件,因为我希望我的React项目中的所有组件都是仅带有钩子的功能组件。
答案 0 :(得分:1)
使用eslint的react插件https://www.npmjs.com/package/eslint-plugin-react并在eslint配置中将react/prefer-stateless-function
设置为true
答案 1 :(得分:1)
我还想要一个 lint 规则来完成这个,所以我写了 eslint-plugin-react-prefer-function-component。
唯一不能编写为函数组件的组件是那些实现了 componentDidCatch
的组件,因此默认情况下允许实现该方法的组件。此选项是可配置的。
eslint-plugin-react/prefer-stateless-function(在其他答案中提到)允许具有状态或实现任何类方法的类组件。