Roadmap
Milestone 2.0
System Requirements
Minimum supported versions:
-
node@20.19.0 -
eslint@8.57.0 -
typescript@5.3.3
Package Distribution
- Publish ESM-Only packages
- Deprecate CommonJS distribution (will only provide migration guide for legacy environments)
- Update all documentation examples to use ESM syntax (rules itself still support linting CommonJS code)
Plugins (with ecological niche explanation)
-
eslint-plugin-react-x- Core 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-shorthand-fragment -
prefer-react-namespace-import -
prefer-shorthand-boolean
Add suggestion-fix feature to rules that can be fixed interactively
-
no-useless-forward-ref -
no-leaked-conditional-rendering -
no-redundant-should-component-update -
no-unused-class-component-members -
no-unused-state -
prefer-destructuring-assignment -
dom/no-missing-button-type -
dom/no-missing-iframe-sandbox -
dom/no-unsafe-iframe-sandbox -
dom/no-unsafe-target-blank -
web-api/no-leaked-timeout -
web-api/no-leaked-interval -
web-api/no-leaked-event-listener -
web-api/no-leaked-resize-observer
New Rules
-
no-context-provider- Replaces usages of<Context.Provider>with<Context>(React 19) -
no-forward-ref- Replaces usages offorwardRefwith passingrefas a prop (React 19) -
no-use-context- Replaces usages ofuseContextwithuse(React 19) -
react-dom/no-render- Replaces usages ofReactDom.render()withcreateRoot(node).render()(React 19) -
react-dom/no-hydrate- Replaces usages ofReactDom.hydrate()withhydrateRoot()(React 19) -
react-dom/no-unmount-component-at-node- Replaces usages ofReactDom.unmountComponentAtNode()withroot.unmount()(React 19) -
react-dom/no-use-form-state- Replaces the usages ofuseFormState()to useuseActionState()(React 19) -
react-dom/no-test-utils-act- Replaces the usages ofTestUtils.act()to useReact.act()(React 19) -
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 inuseEffectlike Hooks (Rel1cx/eslint-react#755)
Advanced Configuration features
- Additional components (
settings["react-x"].additionalComponents) transitions from experimental to stable
Versioning Policy
- The versioning policy will be updated to follow the Semantic Versioning 2.0.0 and ESLint's Semantic Versioning Policy