Client-side React performance optimization patterns.
Client-side React optimization patterns for Cloud UI. 29 rules organized by category and impact.
| 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 |
| 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 |
| 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 |
| 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 |
| 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).
| Rule | Key Point |
|------|-----------|
| client-event-listeners | Clean up event listeners in useEffect return |
| client-passive-event-listeners | { passive: true } for scroll/touch handlers |
| 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 |
npx skills add redpanda-data/react-best-practices下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.
Search and analyze your own session logs (older/parent conversations) using jq.
Control Philips Hue lights and scenes via the OpenHue CLI.
OpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
Category:developer