Roadmap
Milestone 2.0
System Requirements
Minimum supported versions:
- Node.js: 20.19.0
- ESLint: 9.24.0
- TypeScript: 4.9.5
Package Distribution
- Publish ESM-Only packages
Plugins (with ecological niche explanation)
-
eslint-plugin-react-x
- X Rules (renderer-agnostic, compatible with x-platform) -
eslint-plugin-react-dom
- DOM Specific rules for React DOM -
eslint-plugin-react-web-api
- Rules for interacting with Web APIs -
eslint-plugin-react-hooks-extra
- Extra rules foreslint-plugin-react-hooks
-
eslint-plugin-react-naming-convention
- Naming convention rules designed for React projects - ... (Free to combine with other plugins from the community)
Add codemod feature to rules that can be transformed (using auto-fix) safely
-
no-component-did-update
-
no-component-will-receive-props
-
no-component-will-update
-
no-context-provider
-
no-forward-ref
-
no-string-refs
Add auto-fix feature to rules that can be auto-fixed safely
-
function-component-definition
-
no-useless-fragment
-
prefer-react-namespace-import
-
prefer-shorthand-fragment
-
prefer-shorthand-boolean
Add suggestion-fix feature to rules that can be fixed interactively
-
no-prop-types
-
no-redundant-should-component-update
-
no-unused-class-component-members
-
no-unused-state
-
dom/no-missing-button-type
-
dom/no-missing-iframe-sandbox
-
dom/no-unsafe-iframe-sandbox
-
dom/no-unsafe-target-blank
New Rules
-
jsx-no-comment-textnodes
- Disallow text nodes with comments in JSX (Replacesno-comment-textnodes
) -
jsx-shorthand-boolean
- Enforces shorthand boolean attributes in JSX (Replacesprefer-shorthand-boolean
) -
jsx-shorthand-fragment
- Enforces shorthand fragment syntax in JSX (Replacesprefer-shorthand-fragment
) -
no-context-provider
- Replaces usages of<Context.Provider>
with<Context>
(React 19) -
no-forward-ref
- Replaces usages offorwardRef
with passingref
as a prop (React 19) -
no-use-context
- Replaces usages ofuseContext
withuse
(React 19) -
prefer-namespace-import
- Enforces the use of namespace imports for React (Replacesprefer-react-namespace-import
) -
react-dom/no-test-utils-act
- Replaces the usages ofTestUtils.act()
to useReact.act()
(React 19) -
react-dom/no-unmount-component-at-node
- Replaces usages ofReactDom.unmountComponentAtNode()
withroot.unmount()
(React 19) -
react-dom/no-hydrate
- Replaces usages ofReactDom.hydrate()
withhydrateRoot()
(React 19) -
react-dom/no-render
- Replaces usages ofReactDom.render()
withcreateRoot(node).render()
(React 19) -
react-dom/no-use-form-state
- Replaces the usages ofuseFormState()
to useuseActionState()
(React 19) -
react-dom/prefer-namespace-import
- Enforces the use of namespace imports for ReactDOM -
naming-convention/context-name
- Enforces context name to be a valid component name with the suffixContext
(React 19) -
function-component-definition
- Enforce the definition of function components (Rel1cx/eslint-react#739) -
hooks-extra/no-circular-effect
- Detect circularset
(anddispatch
) functions and deps patterns inuseEffect
like Hooks (Rel1cx/eslint-react#755)
Removed Rules
-
no-comment-textnodes
- Replaced byjsx-no-comment-textnodes
-
prefer-react-namespace-import
- Replaced byprefer-namespace-import
-
prefer-shorthand-boolean
- Replaced byjsx-shorthand-boolean
-
prefer-shorthand-fragment
- Replaced byjsx-shorthand-fragment
Versioning Policy
- The versioning policy will be updated to follow the Semantic Versioning 2.0.0 and ESLint's Semantic Versioning Policy