React Developer Assessment Template
A ready-to-run React hiring test covering hooks, state management, performance, and accessibility — with live component execution and AI-proof integrity detection.
What this template measures
Every skill needed for a react developer hire, covered across MCQ, coding, and essay questions.
React Hooks Fluency
useState, useEffect, useMemo, useCallback, and custom hook design.
Component Architecture
Composition patterns, prop drilling vs context, render optimization.
State Management
Context, Redux Toolkit, Zustand, and server-state with TanStack Query.
Performance
Memoization, re-render control, list virtualization, code splitting.
Accessibility
ARIA roles, keyboard navigation, focus management, semantic HTML.
Testing
React Testing Library patterns, hook testing, snapshot judgment.
Sample questions from this template
A preview of the questions you'll see when you use this template.
Which hook should you use to subscribe to an external store (e.g. Redux store) while following React 18 concurrent-rendering rules?
- A.useState with useEffect
- B.useReducer
- C.useSyncExternalStore
- D.useContext
Hint: Concurrent rendering requires a specific subscription pattern.
A component re-renders even though its props and state haven't changed. Its parent re-renders frequently. Which of the following will NOT reduce re-renders?
- A.Wrapping the component in React.memo
- B.Moving state out of the parent
- C.Using useMemo on the props
- D.Replacing useState with useReducer
Implement a `useDebouncedValue<T>(value: T, delayMs: number): T` hook that returns the input value, but only updated after `delayMs` of stability. Include cleanup so rapid re-renders don't leak timers.
Hint: Clean up with the useEffect return function.
Build an accessible autocomplete component: - Controlled input with a suggestions dropdown - Keyboard navigation (ArrowUp/Down, Enter, Escape) - ARIA roles and aria-activedescendant - Closes on outside click Provide props: `suggestions: string[]`, `onSelect: (v: string) => void`.
Given a list of 10,000 products with `{ id, name, price }`, build a `ProductList` that: - Renders only visible rows (virtualization) - Filters in-memory by a search input - Does NOT cause a re-render on each keystroke across all rows
Explain when you'd use `useLayoutEffect` instead of `useEffect`. What problem does it solve, and what are the tradeoffs? Provide a concrete example.
Your React app has a 3-second TTI on mobile. Walk through how you'd investigate and the top 5 interventions you'd consider. Include tradeoffs of each.
Scoring rubric
How candidates are evaluated on this template.
Frequently asked questions
Is this template for junior or senior React developers?+
Default is mid-level (2–5 years). Adjust the weighting, add harder performance questions, and extend the time limit for senior+ roles. Drop the harder questions and add more fundamentals for junior screening.
What React version does this template target?+
React 18+ patterns including concurrent rendering, useSyncExternalStore, and TanStack Query. Compatible with Next.js App Router conventions.
Can I customize this template?+
Yes. Every question, time limit, weighting, and rubric dimension is fully editable. Use the template as a starting point and tailor it to your role and seniority level.
Does this template include AI cheat detection?+
Yes. All ClarityHire assessment templates ship with code coherence AI, keystroke biometrics, and paste detection enabled by default. You can dial integrity level per role.
Related assessment templates
Other role-specific templates you might want to customize.
Launch Your React Assessment Today
Customize this template and invite candidates in minutes.