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).
 |