- vừa được xem lúc

[Phần 1] Tổng quan về Component trong Reactjs

0 0 30

Người đăng: LongNguyen

Theo Viblo Asia

Hi anh em, cuối tuần chúc anh em vui vẻ và sức khỏe. Hôm nay mình sẽ giới thiệu về components trong reactjs. Không để anh em chờ lâu, cùng bắt đầu vào bài viết nào. Bài viết này sẽ có 2 phần, phần 1 mình sẽ nói về định nghĩa, các loại components và ví dụ đơn giản.

1. JSX là gì?

  • Trong ReactJS, JSX vẫn viết tắt của JavaScript XML. Là một phần mở rộng của JavaScript, được sử dụng để tạo và quản lý các thành phần giao diện người dùng trong các ứng dụng web. Nó cho phép bạn viết mã HTML-like trong JavaScript để tạo các thành phần UI, thay vì phải tạo chúng bằng cách sử dụng các hàm JavaScript.
  • Ví dụ:
import React from 'react'; function App() { const menuItems = [ { id: 1, name: 'Hamburger', price: 10 }, { id: 2, name: 'Cheeseburger', price: 12 }, { id: 3, name: 'Fries', price: 5 }, { id: 4, name: 'Onion Rings', price: 7 } ]; const orderItems = []; const handleOrder = (menuItem) => { const orderItem = orderItems.find((item) => item.id === menuItem.id); if (orderItem) { orderItem.quantity++; } else { orderItems.push({ ...menuItem, quantity: 1 }); } }; return ( <div> <h1>Menu</h1> <ul> {menuItems.map((menuItem) => ( <li key={menuItem.id}> <span>{menuItem.name}</span> <span>${menuItem.price.toFixed(2)}</span> <button onClick={() => handleOrder(menuItem)}>Order</button> </li> ))} </ul> <h2>Order</h2> <ul> {orderItems.map((orderItem) => ( <li key={orderItem.id}> <span>{orderItem.name}</span> <span>${(orderItem.price * orderItem.quantity).toFixed(2)}</span> <span>{orderItem.quantity}</span> </li> ))} </ul> </div> );
} export default App; 
  • Với JSX, bạn có thể tạo các thành phần UI bằng cách sử dụng các thẻ HTML giống như trong các trang web thông thường, nhưng sử dụng các biểu thức JavaScript để tạo nội dung động. JSX cũng cho phép bạn sử dụng các thuộc tính HTML, các biểu thức JavaScript và các sự kiện như onClick và onSubmit để tạo các thành phần UI tương tác.

2. Components trong Reactjs

  • Component là một đối tượng JavaScript được sử dụng để tạo các thành phần giao diện người dùng. Nó giúp tách một ứng dụng thành các phần nhỏ hơn, dễ quản lý và tái sử dụng.

  • Các component được tạo ra để giúp tách một ứng dụng thành các phần nhỏ hơn, dễ quản lý và tái sử dụng. Chúng có thể được sử dụng để tạo các phần tử UI như nút, trình đơn, biểu đồ, form, bảng, v.v.

  • Ví dụ như hình trên ta có thể chia một trang web thành các component nhỏ hơn và các component này tổ chức theo cấu trúc dạng cây. Ta có thể tái sử dụng các components này ở các page khác nhau nếu cần.

3. Các loại components trong reactjs

  • Functional Components (Hay còn gọi là Stateless Components): Là các component được viết dưới dạng hàm, không có trạng thái (state) và không có phương thức lifecycle riêng của nó.
    • Ví dụ:
import React from 'react'; function MyComponent(props) { return ( <div> <h1>Hello, {props.name}!</h1> <p>{props.message}</p> </div> );
} export default MyComponent; 
  • Class Components (Hay còn gọi là Stateful Components): Là các component được viết dưới dạng class, có trạng thái (state) và có các phương thức lifecycle riêng của nó.
import React from 'react'; class MyComponent extends React.Component { constructor(props) { super(props); this.state = { count: 0 }; } handleClick = () => { this.setState(prevState => ({ count: prevState.count + 1 })); }; render() { return ( <div> <h1>Count: {this.state.count}</h1> <button onClick={this.handleClick}>Increment</button> </div> ); }
} export default MyComponent;
  • Presentational Components: Là các component chỉ có nhiệm vụ hiển thị dữ liệu, không có logic xử lý nghiệp vụ. Chúng thường được gọi là "dumb components".
import React from 'react'; const Greeting = ({ name }) => { return ( <div> <h1>Hello, {name}!</h1> <p>Welcome to my website.</p> </div> );
}; export default Greeting; 
  • Container Components: Là các component có nhiệm vụ xử lý logic nghiệp vụ, truy cập dữ liệu và truyền nó xuống cho các Presentational Component. Chúng thường được gọi là "smart components".
import React from 'react';
import { connect } from 'react-redux';
import { fetchTodos } from '../actions';
import TodoList from '../components/TodoList'; class TodoListContainer extends React.Component { componentDidMount() { this.props.fetchTodos(); } render() { const { todos, isLoading, error } = this.props; return <TodoList todos={todos} isLoading={isLoading} error={error} />; }
} const mapStateToProps = state => ({ todos: state.todos.data, isLoading: state.todos.isLoading, error: state.todos.error,
}); export default connect(mapStateToProps, { fetchTodos })(TodoListContainer); 
  • Trên đây mình nêu ra một vài loại components thường gặp và ví dụ về cách sử dụng.

4. Tổng kết

  • Qua bài viết này hy vọng mọi người có cái nhìn tổng quan về components trong reactjs. Phần 2 mình sẽ đi vào thực hành nhiều hơn.
  • Cảm ơn mọi người đã xem bài viết. Chúc mọi người một cuối tuần vui vẻ. Nếu có thắc mắc về các phần trong bài này mọi người có thể inbox qua facebook:https://www.facebook.com/FriendsCode-108096425243996 Mình sẽ giải đáp thắc mắc trong tầm hiểu biết. Cảm ơn mọi người!
  • Hoặc liên hệ mình qua facebook cá nhân: https://www.facebook.com/Flamesofwars/

5. Tham khảo:

Bình luận

Bài viết tương tự

- vừa được xem lúc

Những điều cần lưu ý và sử dụng Hook trong React (Phần 5)

V. Sử dụng useRef như thế nào cho đúng.

0 0 140

- vừa được xem lúc

7 Cách viết code React "clean" hơn

Mở đầu. Là nhà phát triển React, tất cả chúng ta đều muốn viết code sạch hơn, đơn giản hơn và dễ đọc hơn. 1. Sử dụng JSX shorthands.

0 0 199

- vừa được xem lúc

Create app covid-19 use Reactjs

Chào các bạn hôm nay mình sẽ chia sẻ với các bạn một app covid-19, để mọi người cùng tham khảo, tính năng của App này chỉ đơn giản là show số liệu về dịch Covid của các nước trên thế giới như: Số ngườ

0 0 55

- vừa được xem lúc

ReactJS Custom Hooks

ReactJS cung cấp rất nhiều cho bạn các hook mà bạn có thể sử dụng hằng ngày vào project của mình. Nhưng bên cạnh đó bạn có thể tự tạo ra các hook của riêng bạn để sử dụng, làm cho việc tối ưu hóa code

0 0 80

- vừa được xem lúc

3 cách để tránh re-render khi dùng React context

3 cách để tránh re-render khi dùng React context. Nếu đã từng sử dụng React context cho dự án của bạn, và gặp phải tình trạng các component con - Consumer re-render rất nhiều lần, thậm chí bị sai logi

0 0 38

- vừa được xem lúc

Tìm hiểu về React Hook: Sử dụng useDebugValue

Trong bài viết hôm này, tôi sẽ giới thiệu các bạn một React Hook tiếp theo, đó là useDebugValue. useDebugValue là gì .

0 0 58