Deciding How and When to Declare State, Managing Local and Remote State, Shared, Derived, and Immutable State, State via Refs, Complex State with useReducer, State in Class Components, State via Third-Party Libraries, Sharing State and Functions via Context. Implementing Routing and Form Validation.