eslint-plugin-react-hooks
O eslint-plugin-react-hooks fornece regras do ESLint para impor as Regras do React.
Este plugin ajuda você a detectar violações das regras do React em tempo de compilação, garantindo que seus componentes e hooks sigam as regras do React para correção e desempenho. Os lints cobrem tanto padrões fundamentais do React (exhaustive-deps e rules-of-hooks) quanto problemas sinalizados pelo React Compiler. Os diagnósticos do React Compiler são automaticamente exibidos por este plugin ESLint e podem ser usados mesmo que seu aplicativo ainda não tenha adotado o compilador.
Regras Recomendadas
Estas regras estão incluídas no preset recommended em eslint-plugin-react-hooks:
exhaustive-deps- Valida que os arrays de dependência para hooks do React contêm todas as dependências necessáriasrules-of-hooks- Valida que componentes e hooks seguem as Regras dos Hookscomponent-hook-factories- Valida funções de ordem superior que definem componentes ou hooks aninhadosconfig- Valida as opções de configuração do compiladorerror-boundaries- Valida o uso de Error Boundaries em vez de try/catch para erros de filhosgating- Valida a configuração do modo de gatingglobals- Valida contra atribuição/mutação de globais durante a renderizaçãoimmutability- Valida contra mutação de props, estado e outros valores imutáveisincompatible-library- Valida contra o uso de bibliotecas incompatíveis com memoizaçãopreserve-manual-memoization- Valida que a memoização manual existente é preservada pelo compiladorpurity- Valida que componentes/hooks são puros verificando funções conhecidas como impurasrefs- Valida o uso correto de refs, não lendo/escrevendo durante a renderizaçãoset-state-in-effect- Valida contra a chamada de setState síncronamente em um effectset-state-in-render- Valida contra a definição de estado durante a renderizaçãostatic-components- Valida que os componentes são estáticos, não recriados a cada renderizaçãounsupported-syntax- Valida contra sintaxe que o React Compiler não suportause-memo- Valida o uso do hookuseMemosem um valor de retorno