Logo
  • DB
  • About
  • Updates
eslint-plugin-react

React specific linting rules for ESLint

❯ npm i --save-dev eslint-plugin-react
🏠 Homepage🐛 BugsGitHub LogoGitHubnpm Logonpmreactreact-dom
🕵️‍♂️ Linter
  • 3 Configs
  • 100 Rules
GitHub LogoGitHub
  • JavaScript
  • 8.7K Stars
  • 80 Watchers
npm Logonpm
  • 9.8M Wkly Downloads
  • +43% WoW
  • 7.33.2 795 kB
📋 Requirements
  • Node: >=4
  • ESLint: ^3 || ^4 || ^5 || ...
🗂️ Keywords
  • development
  • ecmascript
  • javascript
ConfigurationRules
🌐 all98
🔴 jsx-runtime2 off
recommended21 error • 1 off
RuleDescription🔧💡💭🗂️⚙️🌐🔴
boolean-prop-naming

Enforces consistent naming for boolean props

⚙️🌐
button-has-type

Disallow usage of button elements without an explicit type attribute

⚙️🌐
default-props-match-prop-types

Enforce all defaultProps have a corresponding non-required PropType

⚙️🌐
destructuring-assignment

Enforce consistent usage of destructuring assignment of props, state, and context

🔧⚙️🌐
display-name

Disallow missing displayName in a React component definition

⚙️🌐
forbid-component-props

Disallow certain props on components

⚙️🌐
forbid-dom-props

Disallow certain props on DOM Nodes

⚙️🌐
forbid-elements

Disallow certain elements

⚙️🌐
forbid-foreign-prop-types

Disallow using another component's propTypes

⚙️🌐
forbid-prop-types

Disallow certain propTypes

⚙️🌐
function-component-definition

Enforce a specific function type for function components

🔧⚙️🌐
hook-use-state

Ensure destructuring and symmetric naming of useState hook value and setter variables

💡📖⚙️🌐
iframe-missing-sandbox

Enforce sandbox attribute on iframe elements

🌐
jsx-boolean-value

Enforce boolean attributes notation in JSX

🔧⚙️🌐
jsx-child-element-spacing

Enforce or disallow spaces inside of curly braces in JSX attributes and expressions

🌐
jsx-closing-bracket-location

Enforce closing bracket location in JSX

🔧⚙️🌐
jsx-closing-tag-location

Enforce closing tag location for multiline JSX

🔧🌐
jsx-curly-brace-presence

Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes

🔧⚙️🌐
jsx-curly-newline

Enforce consistent linebreaks in curly braces in JSX attributes and expressions

🔧📏⚙️🌐
jsx-curly-spacing

Enforce or disallow spaces inside of curly braces in JSX attributes and expressions

🔧⚙️🌐
jsx-equals-spacing

Enforce or disallow spaces around equal signs in JSX attributes

🔧🌐
jsx-filename-extension

Disallow file extensions that may contain JSX

⚙️🌐
jsx-first-prop-new-line

Enforce proper position of the first property in JSX

🔧🌐
jsx-fragments

Enforce shorthand or standard form for React fragments

🔧🌐
jsx-handler-names

Enforce event handler naming conventions in JSX

⚙️🌐
jsx-indent

Enforce JSX indentation

🔧⚙️🌐
jsx-indent-props

Enforce props indentation in JSX

🔧⚙️🌐
jsx-key

Disallow missing key props in iterators/collection literals

⚙️🌐
jsx-max-depth

Enforce JSX maximum depth

⚙️🌐
jsx-max-props-per-line

Enforce maximum of props on a single line in JSX

🔧⚙️🌐
jsx-newline

Require or prevent a new line after jsx elements and expressions.

🔧⚙️🌐
jsx-no-bind

Disallow .bind() or arrow functions in JSX props

⚙️🌐
jsx-no-comment-textnodes

Disallow comments from being inserted as text nodes

🌐
jsx-no-constructed-context-values

Disallows JSX context provider values from taking values that will cause needless rerenders

🌐
jsx-no-duplicate-props

Disallow duplicate properties in JSX

⚙️🌐
jsx-no-leaked-render

Disallow problematic leaked values from being rendered

🔧⚙️🌐
jsx-no-literals

Disallow usage of string literals in JSX

⚙️🌐
jsx-no-script-url

Disallow usage of javascript: URLs

⚙️🌐
jsx-no-target-blank

Disallow target="_blank" attribute without rel="noreferrer"

🔧⚙️🌐
jsx-no-undef

Disallow undeclared variables in JSX

⚙️🌐
jsx-no-useless-fragment

Disallow unnecessary fragments

🔧📖⚙️🌐
jsx-one-expression-per-line

Require one JSX element per line

🔧⚙️🌐
jsx-pascal-case

Enforce PascalCase for user-defined JSX components

⚙️🌐
jsx-props-no-multi-spaces

Disallow multiple spaces between inline JSX props

🔧🌐
jsx-props-no-spreading

Disallow JSX prop spreading

⚙️🌐
jsx-sort-default-props

Enforce defaultProps declarations alphabetical sorting

⚙️
jsx-sort-props

Enforce props alphabetical sorting

🔧⚙️🌐
jsx-space-before-closing

Enforce spacing before closing bracket in JSX

🔧
jsx-tag-spacing

Enforce whitespace in and around the JSX opening and closing brackets

🔧⚙️🌐
jsx-uses-react

Disallow React to be incorrectly marked as unused

🌐🚫
jsx-uses-vars

Disallow variables used in JSX to be incorrectly marked as unused

🌐
jsx-wrap-multilines

Disallow missing parentheses around multiline JSX

🔧⚙️🌐
no-access-state-in-setstate

Disallow when this.state is accessed within setState

🌐
no-adjacent-inline-elements

Disallow adjacent inline elements not separated by whitespace.

🌐
no-array-index-key

Disallow usage of Array index in keys

🌐
no-arrow-function-lifecycle

Lifecycle methods should be methods on the prototype, not class fields

🔧🌐
no-children-prop

Disallow passing of children as props

⚙️🌐
no-danger

Disallow usage of dangerous JSX properties

🌐
no-danger-with-children

Disallow when a DOM element is using both children and dangerouslySetInnerHTML

🌐
no-deprecated

Disallow usage of deprecated methods

🌐
no-did-mount-set-state

Disallow usage of setState in componentDidMount

🌐
no-did-update-set-state

Disallow usage of setState in componentDidUpdate

🌐
no-direct-mutation-state

Disallow direct mutation of this.state

🌐
no-find-dom-node

Disallow usage of findDOMNode

🌐
no-invalid-html-attribute

Disallow usage of invalid attributes

💡📖🌐
no-is-mounted

Disallow usage of isMounted

🌐
no-multi-comp

Disallow multiple component definition per file

⚙️🌐
no-namespace

Enforce that namespaces are not used in React elements

🌐
no-object-type-as-default-prop

Disallow usage of referential-type variables as default param in functional component

🌐
no-redundant-should-component-update

Disallow usage of shouldComponentUpdate when extending React.PureComponent

🌐
no-render-return-value

Disallow usage of the return value of ReactDOM.render

🌐
no-set-state

Disallow usage of setState

🌐
no-string-refs

Disallow using string references

⚙️🌐
no-this-in-sfc

Disallow this from being used in stateless functional components

🌐
no-typos

Disallow common typos

🌐
no-unescaped-entities

Disallow unescaped HTML entities from appearing in markup

⚙️🌐
no-unknown-property

Disallow usage of unknown DOM property

🔧⚙️🌐
no-unsafe

Disallow usage of unsafe lifecycle methods

⚙️🌐🚫
no-unstable-nested-components

Disallow creating unstable components inside components

⚙️🌐
no-unused-class-component-methods

Disallow declaring unused methods of component class

🌐
no-unused-prop-types

Disallow definitions of unused propTypes

⚙️🌐
no-unused-state

Disallow definitions of unused state

🌐
no-will-update-set-state

Disallow usage of setState in componentWillUpdate

🌐
prefer-es6-class

Enforce ES5 or ES6 class for React Components

🌐
prefer-exact-props

Prefer exact proptype definitions

🌐
prefer-read-only-props

Enforce that props are read-only

🔧🌐
prefer-stateless-function

Enforce stateless components to be written as a pure function

⚙️🌐
prop-types

Disallow missing props validation in a React component definition

⚙️🌐
react-in-jsx-scope

Disallow missing React when using JSX

🌐🚫
require-default-props

Enforce a defaultProps definition for every prop that is not a required prop

⚙️🌐
require-optimization

Enforce React components to have a shouldComponentUpdate method

⚙️🌐
require-render-return

Enforce ES5 or ES6 class for returning value in render function

🌐
self-closing-comp

Disallow extra closing tags for components without children

🔧⚙️🌐
sort-comp

Enforce component methods order

⚙️🌐
sort-default-props

Enforce defaultProps declarations alphabetical sorting

⚙️🌐
sort-prop-types

Enforce propTypes declarations alphabetical sorting

🔧⚙️🌐
state-in-constructor

Enforce class component state initialization style

🌐
static-property-placement

Enforces where React component static properties should be positioned.

⚙️🌐
style-prop-object

Enforce style prop value is an object

⚙️🌐
void-dom-elements-no-children

Disallow void DOM elements (e.g. <img />, <br />) from receiving children

🌐
© 2024 Lintbase