Multi-Step Forms and Wizards
Learn how to structure a multi-step form's state and navigation so data persists correctly across steps.
A multi-step form (wizard) splits a large form into sequential steps, showing one step's fields at a time while retaining the values entered on previous steps, so a final submission has access to the complete combined data set. The central design decision is where the combined form data lives: typically lifted to a parent wizard component (via useState or useReducer) rather than scoped to each individual step, since steps need to share and accumulate into the same overall data object.
A multi-step form is like a passport application processed across several service windows in one government office — each window handles one section of the form, but your entire application folder travels with you between windows rather than each window starting a brand-new folder that forgets what you already submitted at the previous one.