1. Declarative UI compares to imperative

2. Thinking about UI declaratively in React - Finding Visual States

3. Thinking about UI declaratively in React - Finalize React states & Connect Event Handlers

Principles for Structuring State

4. Choosing the State Structure - Group related state

5. Choosing the State Structure - Avoid contradictions in the State

6. Choosing the State Structure - Avoid redundant state

9. Sharing State Between Components - Lifting state up

10. Preserving and Resetting State - Default behavior

11. Resetting state at the same position - Changing Default behavior

12. Extracting State Logic into a Reducer

13. Comparing useState and useReducer - How to write reducers well

14. Comparing useState and useReducer - How to write reducers well

15. Writing concise reducers with Immer

16 Passing Data Deeply with Context - Introduction to Context API

17. Using and providing context from the same component

18. Context passes through intermediate components