34 lines
1.5 KiB
Markdown
34 lines
1.5 KiB
Markdown
|
---
|
||
|
title: Write a React Component from Scratch
|
||
|
---
|
||
|
## Write a React Component from Scratch
|
||
|
In this challenge we want to create a `class` react component (React components can be `class` components or `function` components). All of our class components are going to be an extention of `React.Component`. For example we can start to make a component called `FirstComponent` with:
|
||
|
```javascript
|
||
|
class FirstComponent extends React.Component {
|
||
|
|
||
|
};
|
||
|
```
|
||
|
We also need to be sure to define the `constructor` for our new class. It is best practice to call any component's `constructor` with `super` and to pass `props` to both. `super` pulls the `constructor` of our component's parent class (in this case `React.Component`). Now, the code for our component looks like this:
|
||
|
```javascript
|
||
|
class FirstComponent extends React.Component {
|
||
|
constructor(props) {
|
||
|
super(props);
|
||
|
}
|
||
|
|
||
|
};
|
||
|
```
|
||
|
Now all that's left to do is define what our component will `render`! We do this by calling the component's `render` method, and returning our JSX code:
|
||
|
```javascript
|
||
|
class FirstComponent extends React.Component {
|
||
|
constructor(props) {
|
||
|
super(props);
|
||
|
}
|
||
|
render() {
|
||
|
return (
|
||
|
// The JSX code you put here is what your component will render
|
||
|
);
|
||
|
}
|
||
|
};
|
||
|
```
|
||
|
Once your JSX code is in there, your component is complete! If you want a more granular tutorial of React components Samer Buna [wrote a great article](https://medium.freecodecamp.org/how-to-write-your-first-react-js-component-d728d759cabc).
|