- Break the UI into a component hierarchy ===> Single responsibility
- Build a static version: Less thinking much typing (coz no interactivity - more thinking)
- Identify the minimal representation of UI state
- Identify where your state should live
- Add inverse data flow
- Reducer pattern
- Context API
[ ] React.memo --> receives fn component && rerender based on prop change [ ] useCallback ---> give back a memoized fn based on deps. [ ] useMemo ----> call fn depending on deps. [ ] useReducer ----> Almost like redux in some way
[ ] useReducer [ ] React.memo [ ] useCallback
[ ] Reducer pattern
<ParentComponent>
<ChildAComponent name={name}>
<Component name={name} />
</ChildAComponent>
</ParentComponent>>