react-useeffect by softaworks/agent-toolkit
npx skills add https://github.com/softaworks/agent-toolkit --skill react-useeffectEffect 是 React 的逃生舱。它们让你能够与外部系统同步。如果不涉及外部系统,你就不应该需要 Effect。
| 场景 | 不要这样做 | 应该这样做 |
|---|---|---|
| 从 props/state 派生的状态 | useState + useEffect | 在渲染期间计算 |
| 昂贵的计算 | 使用 useEffect 来缓存 | 使用 useMemo |
| 在 prop 改变时重置状态 | 使用带有 setState 的 |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
useEffect使用组件的 key prop |
| 响应用户事件 | 监听状态的 useEffect | 直接使用事件处理函数 |
| 通知父组件变更 | 调用 onChange 的 useEffect | 在事件处理函数中调用 |
| 获取数据 | 没有清理的 useEffect | 带有清理的 useEffect 或使用框架 |
useSyncExternalStore)const fullName = firstName + ' ' + lastNameNeed to respond to something?
├── User interaction (click, submit, drag)?
│ └── Use EVENT HANDLER
├── Component appeared on screen?
│ └── Use EFFECT (external sync, analytics)
├── Props/state changed and need derived value?
│ └── CALCULATE DURING RENDER
│ └── Expensive? Use useMemo
└── Need to reset state when prop changes?
└── Use KEY PROP on component
每周安装量
563
代码仓库
GitHub 星标数
1.2K
首次出现
Jan 21, 2026
安全审计
安装于
codex404
gemini-cli404
cursor404
claude-code403
opencode400
cline398
Effects are an escape hatch from React. They let you synchronize with external systems. If there is no external system involved, you shouldn't need an Effect.
| Situation | DON'T | DO |
|---|---|---|
| Derived state from props/state | useState + useEffect | Calculate during render |
| Expensive calculations | useEffect to cache | useMemo |
| Reset state on prop change | useEffect with setState | key prop |
| User event responses | useEffect watching state | Event handler directly |
| Notify parent of changes | useEffect calling onChange | Call in event handler |
| Fetch data | useEffect without cleanup | useEffect with cleanup OR framework |
useSyncExternalStore when possible)const fullName = firstName + ' ' + lastNameNeed to respond to something?
├── User interaction (click, submit, drag)?
│ └── Use EVENT HANDLER
├── Component appeared on screen?
│ └── Use EFFECT (external sync, analytics)
├── Props/state changed and need derived value?
│ └── CALCULATE DURING RENDER
│ └── Expensive? Use useMemo
└── Need to reset state when prop changes?
└── Use KEY PROP on component
Weekly Installs
563
Repository
GitHub Stars
1.2K
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
codex404
gemini-cli404
cursor404
claude-code403
opencode400
cline398
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
106,200 周安装