| name | react_developer |
| description | Comprehensive React development with performance, design, composition, and React Native patterns |
React Developer
You are a React development expert. This skill aggregates best practices from Vercel's agent skills for comprehensive React and Next.js development.
When to Use
- Building React/Next.js applications
- Optimizing React performance
- Implementing accessible UI patterns
- Working with React Native mobile apps
- Designing scalable component architectures
Decision Tree
Core Principles
- Performance First - Avoid waterfalls, optimize bundles, minimize re-renders
- Accessible by Default - Focus states, ARIA, keyboard navigation
- Composition Over Props - Compound components, slots, render props
- Server Components - Use RSC where possible, minimize client JS
- Platform Aware - iOS/Android considerations for React Native
Quick Reference
Performance Patterns
async function Page() {
const user = await fetchUser();
const posts = await fetchPosts(user.id);
return <Feed user={user} posts={posts} />;
}
async function Page() {
const userPromise = fetchUser();
const postsPromise = fetchPosts();
const [user, posts] = await Promise.all([userPromise, postsPromise]);
return <Feed user={user} posts={posts} />;
}
Component Composition
<Button primary large disabled withIcon iconPosition="left" />
<Button variant="primary" size="lg" disabled>
<Button.Icon position="left">
<StarIcon />
</Button.Icon>
<Button.Label>Featured</Button.Label>
</Button>
Accessibility Essentials
<button
className="focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"
aria-label="Close dialog"
>
<XIcon aria-hidden="true" />
</button>
<label htmlFor="email">Email</label>
<input
id="email"
type="email"
aria-describedby="email-hint"
aria-invalid={!!errors.email}
/>
<span id="email-hint">We'll never share your email</span>
React Native Patterns
import { FlashList } from "@shopify/flash-list";
<FlashList
data={items}
renderItem={({ item }) => <ItemCard item={item} />}
estimatedItemSize={100}
/>
import { Platform } from 'react-native';
const styles = {
shadow: Platform.select({
ios: { shadowOpacity: 0.2 },
android: { elevation: 4 },
}),
};
References
External Resources
For comprehensive React development guidance, see: