Avoid Unnecessary React Hook
Description
React hook is a powerful feature in React that allows you to use state and other React features in a functional component.
However, you should avoid using hooks when you don't need them. If the code does not contain using any other React hooks, it can be rewritten to a plain function. This can help to separate your application logic from the React-specific UI logic.
YAML
yaml
id: unnecessary-react-hook
language: Tsx
utils:
hook_call:
has:
kind: call_expression
regex: ^use
stopBy: end
rule:
any:
- pattern: function $FUNC($$$) { $$$ }
- pattern: let $FUNC = ($$$) => $$$
- pattern: const $FUNC = ($$$) => $$$
has:
pattern: $BODY
kind: statement_block
stopBy: end
constraints:
FUNC: {regex: ^use }
BODY: { not: { matches: hook_call } }
Example
tsx
function useIAmNotHookActually(args) {
console.log('Called in React but I dont need to be a hook')
return args.length
}
const useIAmNotHookToo = (...args) => {
console.log('Called in React but I dont need to be a hook')
return args.length
}
function useTrueHook() {
useEffect(() => {
console.log('Real hook')
})
}