Sobre el proyecto

eslint-plugin-react es una colección de reglas de linting específicas de React para ESLint. Ayuda a los desarrolladores a aplicar mejores prácticas de React, detectar errores comunes y mantener un estilo de código consistente en proyectos de React. La instalación es sencilla mediante npm: npm install eslint eslint-plugin-react --save-dev. El complemento funciona tanto con el sistema de configuración heredado .eslintrc como con el nuevo sistema de configuración plana eslint.config.js introducido en ESLint v8.21.0. El complemento exporta varias configuraciones compartibles: recommended (aplica buenas prácticas de React), all (incluye todas las reglas disponibles) y jsx-runtime (para la nueva transformación de JSX de React 17+). También hay variantes de configuración plana disponibles como flat.recommended, flat.all y flat['jsx-runtime']. Estas configuraciones habilitan automáticamente JSX en las opciones del parser. La configuración admite ajustes compartidos para react.pragma, react.fragment, react.version, react.createClass, propWrapperFunctions, componentWrapperFunctions, formComponents y linkComponents. Estos ajustes permiten personalizar proyectos que usan MobX observer, styled-components, componentes de formulario personalizados o componentes de enlace personalizados. El complemento incluye una gran cantidad de reglas que cubren formato de JSX (jsx-indent, jsx-curly-spacing, jsx-props-no-multi-spaces), definiciones de componentes (display-name, function-component-definition), validación de props (jsx-no-duplicate-props, default-props-match-prop-types), hooks (hook-use-state, forward-ref-uses-ref), accesibilidad (button-has-type, iframe-missing-sandbox), seguridad (jsx-no-target-blank, jsx-no-script-url) y muchas más. Muchas reglas se corrigen automáticamente mediante la opción CLI --fix, y algunas proporcionan sugerencias de corrección manual a través de integraciones con editores. La lista de reglas incluye reglas obsoletas marcadas con un símbolo de cruz, y el complemento mantiene compatibilidad con ESLint v8 y v9.