Class Components và Function Components

Tạo bởi Hoàng Vũ, chỉnh sửa cuối lúc 15 tháng 1, 2025

1. Giới thiệu về Components trong React

Components là khối xây dựng cơ bản của React. Chúng giúp chia nhỏ giao diện người dùng thành các phần tử độc lập, có thể tái sử dụng. Trong React, có hai loại components chính:

  • Class Components
  • Function Components

2. Class Components

Class Components được định nghĩa bằng cách sử dụng cú pháp class trong JavaScript và kế thừa từ React.Component.

Ví dụ về Class Component:

import React, { Component } from 'react';		
			
class Welcome extends Component {		
	  render() {		
	    return <h1>Hello, {this.props.name}</h1>;		
	  }		
}		

Đặc điểm của Class Components:

  • Có thể sử dụng state để quản lý trạng thái nội bộ của component.
  • Có thể sử dụng các vòng đời của React như componentDidMount, componentDidUpdate, componentWillUnmount.
  • Dùng this để truy cập props và state.

Ưu điểm:

  • Quản lý state phức tạp dễ dàng.
  • Hỗ trợ đầy đủ các lifecycle methods.

Nhược điểm:

  • Cú pháp phức tạp, dài dòng.
  • Khó khăn khi làm việc với các hooks.

3. Function Components

Function Components là các hàm JavaScript trả về JSX. Chúng đơn giản hơn so với Class Components và hiện là cách tiếp cận phổ biến trong React.

Ví dụ về Function Component:

import React from 'react';		
			
function Welcome(props) {		
	  return <h1>Hello, {props.name}</h1>;		
}		

Đặc điểm của Function Components:

  • Dễ viết và dễ hiểu.
  • Hỗ trợ Hooks (useState, useEffect, useContext,...) để quản lý state và các tính năng khác.
  • Không có this.

Ưu điểm:

  • Cú pháp ngắn gọn, dễ đọc.
  • Tích hợp tốt với Hooks.
  • Hiệu suất tốt hơn trong một số trường hợp.

Nhược điểm:

  • Trước đây không hỗ trợ state và lifecycle methods (đã được giải quyết với Hooks).

4. So sánh Class Components và Function Components

Tiêu chí Class Components Function Components
Cú pháp Dài dòng, phức tạp Ngắn gọn, dễ hiểu
State Sử dụng this.state Sử dụng useState
Lifecycle Có lifecycle methods Sử dụng useEffect
Hooks Không hỗ trợ Hooks Hỗ trợ đầy đủ Hooks
Hiệu suất Chậm hơn một chút Tối ưu hơn

5. Khi nào nên sử dụng Class Components và Function Components?

  • Class Components: Sử dụng trong các dự án cũ hoặc khi cần truy cập trực tiếp vào lifecycle methods.
  • Function Components: Nên ưu tiên sử dụng trong các dự án mới, đặc biệt khi làm việc với Hooks.

6. Kết luận

Hiện nay, Function Components được khuyến khích sử dụng nhờ tính linh hoạt và sự hỗ trợ của Hooks. Tuy nhiên, trong các dự án cũ, bạn vẫn sẽ gặp Class Components. Việc hiểu rõ sự khác biệt giữa hai loại components này sẽ giúp bạn phát triển ứng dụng React một cách hiệu quả hơn.

Website Logo

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.

Bình luận

Website Logo

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.

Liên hệ công việc qua email dưới đây.

lhvuctu@gmail.com

Chúng Tôi Trên

Bạn đang muốn học về lập trình website?

Bạn cần nâng cao kiến thức chuyên nghiệp hơn để nâng cao cơ hội nghề nghiệp? Liên hệ