- Allow to have state value pass around difference level of components.
- Allow to have multiple contexts.
- One value changed, then rendering all components again.
- It's centralized state management.
- Allow to hava middleware.
- Better for middle tier test case.
- A cetain level coding complication in order to pass value to different stages.