08 Class Components - biswajitsundara/react GitHub Wiki
Class component is a java script class that holds a functionality.
- Functional component is just a java script function that accepts props as an argument and returns JSX (react element)
- Class component extends the React.Component class and has a render function that returns the JSX (react element)
- Before React 16.8, only class component had the state, life cycle feature and the function components were considered state less.
- However with the addition of hooks now functional components as powerful as class components.
- All the new projects are using only functional components and there's no need to research further on class components.
- However all the old projects still have class components and react still supports it.
import React from "react";
export class AppUser extends React.Component{
render(){
return <h1>Hello User</h1>;
}
}
In App.js it's similar like how we call the functional components.
function App() {
return <AppUser /> ;
}
Let's say we want to pass the username to the class component
import React from "react";
export class AppUser extends React.Component{
render(){
const {username} = this.props;
return <h1>Hello {username}</h1>;
}
}
//App.js
function App() {
return <AppUser username="Biswajit"/> ;
}
We can't use this.props in constructor directly. We will have to make a super() call.
import React from "react";
export class AppUser extends React.Component{
constructor(props){
super(props);
console.log(this.props);
}
render(){
const {username} = this.props;
return <h1>Hello {username}</h1>;
}
}
//App.js
function App() {
return <AppUser username="Biswajit"/> ;
}
If we want to work with states, then in the constructor we can maintain this.state