Link to CodeSandbox used in the lecture (with lots of comments!)
- Class vs Function components
- state
- this.setState
- props
- Life Cycle Methods
class App extends Component {
constructor() {
super();
this.state = {
items: ['item1', 'item2', 'item3'],
};
}
render() {
return (
<div>
<SomeOtherComponent items={this.state.items} />
</div>
)
}
}
- Note that every react component only renders out a single DOM element. So if you have more elements to render out, they'll need to be wrapped in a single element. You cannot render sibling elements.
- Note also the use of the
constructor()
andsuper()
. When youextend
a class you need to callsuper()
to pass back up the elements to the original class. We areextending
Component
which is a class that comes from React. - Notice that I called this array "items" and set it equal to this.state.items.
- React will read this attribute "items" and create and object called
props
that will look like thisprops = {items: ['item1', 'item2', 'item3']}
You can access thisprops object
in the child componentSomeOtherComponent
const SomeOtherComponent = (props) => {
// render them out to the term.
return (
<ul>
{props.items.map((element) => {
return <li>{element}</li>
})}
</ul>
)
}
- React tells
props
to come in as an obj. React knows this component needs props because we set them on as an attribute on<SomeOtherComponent items={this.state.props}/>
as 'items'. - Now inside of
<SomeOtherComponent />
you can do stuff withprops
. Notice we're passing props in as a param. It will be an object called props that you can reference. - Because this is a functional component you can simply iterate over a list of given elements and render each element to the screen.