Components in React.js
In React.js, components are the building blocks used to create user interfaces. They encapsulate the logic and rendering of a portion of the UI, making it easier to manage and reuse code.
There are two main types of components in React:
- Functional Components:
Functional components are JavaScript functions that receive props (short for properties) as input and return React elements to describe what should appear on the screen. They are typically used for simpler components that don’t need to manage state or lifecycle methods. Example:
import React from 'react';
const FunctionalComponent = (props) => {
return <div>Hello, {props.name}!</div>;
};
export default FunctionalComponent;
- Class Components:
Class components are ES6 classes that extend theReact.Component
class. They have more features than functional components, including the ability to manage state and lifecycle methods such ascomponentDidMount
,componentDidUpdate
, etc. Example:
import React, { Component } from 'react';
class ClassComponent extends Component {
render() {
return <div>Hello, {this.props.name}!</div>;
}
}
export default ClassComponent;
Components can be composed together to create complex user interfaces. They can also accept input data through props, maintain their own internal state (in the case of class components), and communicate with other components by passing callbacks through props.
To use a component, you import it into your application and include it in the JSX markup like any other HTML element. For example:
import React from 'react';
import ReactDOM from 'react-dom';
import FunctionalComponent from './FunctionalComponent';
import ClassComponent from './ClassComponent';
ReactDOM.render(
<div>
<FunctionalComponent name="John" />
<ClassComponent name="Jane" />
</div>,
document.getElementById('root')
);
This renders both the FunctionalComponent
and the ClassComponent
with their respective props passed to them.