Loading...
Loading...
Compare original and translation side by side
| Situation | DON'T | DO |
|---|---|---|
| Derived state from props/state | | Calculate during render |
| Expensive calculations | | |
| Reset state on prop change | | |
| User event responses | | Event handler directly |
| Notify parent of changes | | Call in event handler |
| Fetch data | | |
| 场景 | 不要做 | 应该做 |
|---|---|---|
| 从props/state派生状态 | | 在渲染期间计算 |
| 昂贵的计算 | 使用 | |
| 当props变化时重置状态 | 使用带 | |
| 用户事件响应 | 监听state的 | 直接使用事件处理函数 |
| 通知父组件变化 | 调用 | 在事件处理函数中调用 |
| 获取数据 | 无清理的 | 带清理的 |
useSyncExternalStoreuseSyncExternalStoreconst fullName = firstName + ' ' + lastNameconst 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 componentNeed 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