react-best-practices

Client-side React optimization patterns for Cloud UI. 29 rules organized by category and impact.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "react-best-practices" with this command: npx skills add redpanda-data/console/redpanda-data-console-react-best-practices

React Best Practices

Client-side React optimization patterns for Cloud UI. 29 rules organized by category and impact.

Activation Conditions

  • Performance optimization tasks

  • Component re-render issues

  • Bundle size concerns

  • useEffect/useMemo patterns

Rules by Category

Bundle Optimization (CRITICAL)

Rule Key Point

bundle-barrel-imports

Import from source files, not barrel index.ts

bundle-code-splitting

React.lazy

  • Suspense for heavy components, conditional loads, deferred 3rd-party

bundle-preload

Preload critical resources

Re-render Prevention (HIGH)

Rule Key Point

rerender-memo

Memoize expensive computations

rerender-dependencies

Minimize hook dependency arrays

rerender-derived-state

Compute during render, not in effects

rerender-functional-setstate

setState(prev => ...) to avoid stale closures

rerender-lazy-state-init

useState(() => expensive()) not useState(expensive())

rerender-simple-expression-in-memo

Don't memoize trivial expressions

rerender-transitions

useTransition for non-urgent updates

rerender-defer-reads

Read URL params / storage inside callbacks, not at render

Rendering (MEDIUM)

Rule Key Point

rendering-conditional-render

Short-circuit with && / ternary, avoid render in effects

rendering-hoist-jsx

Move static JSX outside components

rendering-content-visibility

CSS content-visibility: auto for off-screen

rendering-activity

React <Activity> for hidden UI

rendering-animate-svg-wrapper

Wrap animated SVGs to isolate re-renders

rendering-svg-precision

Limit SVG coordinate precision

Async (MEDIUM)

Rule Key Point

async-suspense-boundaries

Granular <Suspense> boundaries

async-defer-await

Don't await non-blocking work

async-dependencies

Load deps in parallel, not sequentially

JavaScript (MEDIUM)

Rule Key Point

js-caching-patterns

Module-level Map caches for repeated calls + storage reads

js-batch-dom-css

Batch DOM reads/writes to avoid layout thrashing

js-index-maps

Pre-index arrays into Maps for O(1) lookups

js-length-check-first

Check .length before expensive operations

js-tosorted-immutable

Use .toSorted() / .toReversed() for immutable transforms

RegExp hoisting is enforced by Biome (useTopLevelRegex ).

Browser (MEDIUM)

Rule Key Point

client-event-listeners

Clean up event listeners in useEffect return

client-passive-event-listeners

{ passive: true } for scroll/touch handlers

Advanced (LOW)

Rule Key Point

advanced-event-handler-refs

Stable callback refs to avoid child re-renders

advanced-use-latest

useLatest pattern for always-current values in callbacks

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

code-standards

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ui-development

No summary provided by upstream source.

Repository SourceNeeds Review
General

tanstack-router-migration

No summary provided by upstream source.

Repository SourceNeeds Review
Security

security-scan

No summary provided by upstream source.

Repository SourceNeeds Review