AI Agent记忆系统四层架构与跨会话持久化实战
2026/9/13 15:43:45
react-best-practices
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
在这个系列,我会逐条拆解,每一条都给出:
这是系列的第四部分。
「不要直接在 SVG 元素上做动画」
<path>、<circle>)渲染成本高<svg width="100"height="100"><circle cx="50"cy="50"r="40"fill="red"style={{transform:`rotate(${angle}deg)`}}/></svg>每次angle更新,浏览器必须重绘整个<circle>
<div style={{transform:`rotate(${angle}deg)`}}><svg width="100"height="100"><circle cx="50"cy="50"r="40"fill="red"/></svg></div>好处:
<div>上做 GPU transform<svg>内容不会被重复绘制「长列表使用 content-visibility 延迟渲染」
<ul>{data.map(item=><li key={item.id}>{item.name}</li>)}</ul><ul style={{contentVisibility:'auto',containIntrinsicSize:'1000px'}}>{data.map(item=><li key={item.id}>{item.name}</li>)}</ul>好处:
contain-intrinsic-size提前占位「避免 hydration mismatch / 客户端渲染与服务端不一致」
<div dangerouslySetInnerHTML={{__html:`<script>document.body.style.background='red'</script>`}}/>useEffect(() => { document.body.style.background = 'red' }, [])SSR 阶段不改 DOM → 避免 mismatch
「条件渲染用三元表达式,而不是 &&」
false && <Component />会渲染false→ 有时造成空 DOM / Hydration mismatch{isVisible && <Modal />}isVisible=false→ 渲染falseisVisible=true→ 渲染<Modal />{isVisible ? <Modal /> : null}{/* ❌ 不推荐 */} {items.length && <List items={items} />} {/* ✅ 推荐 */} {items.length > 0 ? <List items={items} /> : null}Rendering Patterns =让浏览器和 React 都高效
- SVG 动画 → wrapper transform
- 长列表 → content-visibility
- SSR → hydrate 安全
- 条件渲染 → 明确三元