2.0 KiB
2.0 KiB
상태 관리 최적화 (Zustand, Valtio) 📌 Brief Summary Optimizing state management involves choosing the right tool for the specific reactivity needs of the application. Libraries like Zustand (Action-based) and Valtio (Proxy-based) offer different paradigms to reduce boilerplate and minimize re-renders compared to traditional solutions like Redux or React Context.
📖 Core Content
- Zustand (Atomic/Simplistic):
- Uses a hook-based approach where state is externalized from React.
- Allows for "selective rendering" by specifying exactly which parts of the state a component should listen to.
- Very low boilerplate; no providers needed.
- Valtio (Proxy-based/Mutative):
- Uses JS Proxies to track mutations. You can "mutate" state like regular objects, and Valtio automatically tracks which components need to re-render.
- Extremely high performance for "real-time" updates where nested state needs to be updated deeply.
- Selection Criteria:
- Use Zustand when you need predictable actions and a clear unidirectional flow for business logic.
- Use Valtio when the developer experience of direct mutation is preferred or for state that updates frequently (e.g., game UI properties).
- Optimization Patterns:
- Externalize heavy state: Keeping ephemeral or high-frequency state (e.g., scroll position) in a Zustand store rather than React's
useState. - Transient Updates: Updating store values without triggering a React render (reading directly via
api.getState()).
- Externalize heavy state: Keeping ephemeral or high-frequency state (e.g., scroll position) in a Zustand store rather than React's
🔗 Knowledge Connections
- Related Topics: React 상태 관리 (React State Management), Redux 등 상태 관리 (State Management), Reactive-Programming
- Projects/Contexts: Skybound Protocol UI, Skybound Mission Persistence
- Contradictions/Notes: Proxy-based state (Valtio) can sometimes hide where updates are coming from, making debugging harder in large teams if strict conventions aren't followed.
Last updated: 2026-04-18