All checks were successful
Deploy / deploy (push) Successful in 7m30s
- Added new skills: find-skills, frontend-ui-engineering, and vercel-react-best-practices to skills-lock.json. - Updated use-pixel-heat.ts to import both animate and AnimationPlaybackControls from motion for improved animation handling.
30 lines
728 B
Markdown
30 lines
728 B
Markdown
---
|
|
title: Subscribe to Derived State
|
|
impact: MEDIUM
|
|
impactDescription: reduces re-render frequency
|
|
tags: rerender, derived-state, media-query, optimization
|
|
---
|
|
|
|
## Subscribe to Derived State
|
|
|
|
Subscribe to derived boolean state instead of continuous values to reduce re-render frequency.
|
|
|
|
**Incorrect (re-renders on every pixel change):**
|
|
|
|
```tsx
|
|
function Sidebar() {
|
|
const width = useWindowWidth() // updates continuously
|
|
const isMobile = width < 768
|
|
return <nav className={isMobile ? 'mobile' : 'desktop'} />
|
|
}
|
|
```
|
|
|
|
**Correct (re-renders only when boolean changes):**
|
|
|
|
```tsx
|
|
function Sidebar() {
|
|
const isMobile = useMediaQuery('(max-width: 767px)')
|
|
return <nav className={isMobile ? 'mobile' : 'desktop'} />
|
|
}
|
|
```
|