- The first thing you'll want to do is to draw boxes around every component
- Identified the components in our mock,
- Rerange them into a hierarchy
Components that appear within another component in the mock should appear as a child in the hierarchy
- Th Component should ideally only do one thing. If it ends up growing, it should be decomposed into smaller subcomponents.
- To build a static version of your app that renders your data model, you'll want to build components that reuse other components and pass data using props
- Props are a way of passing data from parent to child. If you are familiar with the concept of state, don't use state at all to build this static version.
- State is reserved only for interactivity, that is, data that changes over time. Since this is a static version of the app, you don't need it.
- Is it passed in from a parent via props? If so, it probably isn't state.
- Does it remain unchanged over time? If so, it probably isn't state.
- Can you compute it based on any other state or props in your component? If so, it isn't state.
-
Identify every component that renders something based on that state.
-
Find a common owner component.
-
Either the common owner or another component higher up in the hierarchy should own the state.
-
If you can't find a component where it makes sense to own the state, create a new component solely for holding the state and add it somewhere in the hierarchy above the common owner component.