Back to list
thapaliyabikendra

react-code-review-patterns

by thapaliyabikendra

1🍴 0📅 Jan 24, 2026

SKILL.md


name: react-code-review-patterns description: "Review checklists and patterns for React/TypeScript frontend code reviews. Use when: (1) reviewing React components, (2) checking TypeScript type safety, (3) validating hooks usage, (4) checking accessibility compliance." layer: 2 tech_stack: [react, typescript, javascript] topics: [code-review, react-patterns, typescript, hooks, accessibility, performance] depends_on: [react-development-patterns, typescript-advanced-types] complements: [code-review-excellence, javascript-testing-patterns] keywords: [React, TypeScript, Hooks, useEffect, useCallback, useMemo, a11y, ARIA, React Query]

React Code Review Patterns

Checklists and patterns for reviewing React/TypeScript frontend code.

Quick Reference

PriorityCategoryKey Checks
1SecurityNo secrets, XSS prevention, safe innerHTML
2Type SafetyNo any, explicit types, proper generics
3React PatternsHooks rules, component structure, keys
4PerformanceMemoization, bundle size, re-renders
5AccessibilityARIA, keyboard nav, semantic HTML

TypeScript Checklist

CheckRequired PatternAnti-Pattern
Type annotationsExplicit typesany, implicit any
GenericsProper constraints<any>
Null handlingStrict null checks! assertions
Type guardsProper narrowingType casting
API typesGenerated from schemaManual types
EnumsString enums or const objectsNumeric enums

React Components Checklist

CheckRequired PatternAnti-Pattern
Component typeFunctional componentsClass components
Props typingInterface/type for propsInline types, any
Default propsDefault parametersdefaultProps
ChildrenExplicit children propImplicit
Fragments<> or FragmentUnnecessary divs
KeysStable, unique keysIndex as key

Hooks Checklist

CheckRequired PatternAnti-Pattern
Hook rulesTop level onlyConditional hooks
DependenciesComplete deps arrayMissing deps, // eslint-disable
useEffect cleanupReturn cleanup functionMissing cleanup
Custom hooksuse prefixNon-hook abstractions
useMemo/useCallbackFor expensive opsPremature optimization

State Management Checklist

CheckRequired PatternAnti-Pattern
Server stateReact QueryuseState for API data
Client stateContext or useStateRedux for simple state
Form stateReact Hook FormManual form handling
Loading statesisLoading, isErrorBoolean flags
Optimistic updatesReact Query mutationsManual state sync

API Integration Checklist

CheckRequired PatternAnti-Pattern
Data fetchinguseQueryuseEffect + fetch
MutationsuseMutationDirect API calls
Error handlingError boundaries + query errorsTry-catch everywhere
CachingReact Query cacheManual caching

Performance Checklist

CheckRequired PatternAnti-Pattern
Re-rendersMemoized callbacksInline functions in JSX
ListsVirtualization for long listsRender all items
Lazy loadingReact.lazy + SuspenseAll code in bundle
ImagesLazy loading, proper sizesUnoptimized images

Accessibility Checklist

CheckRequired PatternAnti-Pattern
Semantic HTML<button>, <nav>, <main><div onClick>
ARIA labelsaria-label, aria-describedbyMissing labels
Keyboard navtabIndex, focus managementMouse-only interactions
Color contrastWCAG AA compliantLow contrast
Form labels<label htmlFor>Placeholder only

Testing Checklist

CheckRequired PatternAnti-Pattern
Test coverageTests for componentsNo tests
Test typeBehavior testsImplementation tests
QueriesgetByRole, getByLabelTextgetByTestId
AsyncwaitFor, findByManual timeouts
MockingMSW for APIMock fetch directly

General Checklist

CheckRequired PatternAnti-Pattern
ConsoleNo console.logDebug statements
CommentsExplain "why"Explain "what"
File size<300 lines per componentMonolithic components
ImportsAbsolute pathsRelative hell ../../../

Common Anti-Patterns

Anti-PatternIssueCorrect Pattern
any typeLoses type safetyExplicit types
Index as keyCauses re-render bugsStable unique ID
Inline functionsRe-creates on renderuseCallback
useEffect for derived stateUnnecessary effectCompute in render
// eslint-disableHiding real issuesFix the issue
Direct DOM manipulationBypasses ReactRefs or state
dangerouslySetInnerHTMLXSS riskSanitize or avoid
Missing error boundariesCrashes whole appError boundary wrapper

References

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon