22. useState trong React JS

useState là một trong những React Hook cơ bản nhất, giúp bạn thêm trạng thái cục bộ vào các thành phần hàm trong React. Nó trả về một cặp giá trị: giá trị trạng thái hiện tại và hàm để cập nhật giá trị đó. Dưới đây là một ví dụ minh họa về cách sử dụng useState:

jsx
import React, { useState } from 'react';

function Counter() {
  // Khởi tạo giá trị trạng thái "count" ban đầu là 0
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
      <button onClick={() => setCount(count - 1)}>Decrement</button>
    </div>
  );
}

export default Counter;

Trong ví dụ trên, useState(0) khởi tạo giá trị trạng thái ban đầu của biến count là 0. count là giá trị trạng thái hiện tại và setCount là hàm để cập nhật giá trị của count. Khi bạn nhấn vào các nút “Increment” hoặc “Decrement”, setCount sẽ được gọi để cập nhật giá trị count, dẫn đến việc hiển thị số được tăng hoặc giảm trên giao diện.

Với useState, bạn có thể tạo ra các trạng thái cục bộ cho các thành phần hàm của bạn, làm cho quản lý trạng thái trở nên dễ dàng hơn so với việc sử dụng class components và this.state.

Dưới đây là một ví dụ cụ thể hơn về cách sử dụng useState trong một ứng dụng React để tạo một danh sách công việc và cho phép người dùng thêm và xoá công việc:

jsx
import React, { useState } from 'react';

function TodoList() {
  const [tasks, setTasks] = useState([]); // Khởi tạo trạng thái tasks là một mảng rỗng

  const addTask = (newTask) => {
    setTasks([...tasks, newTask]); // Thêm một công việc mới vào mảng tasks
  };

  const removeTask = (index) => {
    const newTasks = tasks.filter((_, i) => i !== index); // Lọc bỏ công việc tại index
    setTasks(newTasks);
  };

  return (
    <div>
      <h1>Todo List</h1>
      <ul>
        {tasks.map((task, index) => (
          <li key={index}>
            {task}
            <button onClick={() => removeTask(index)}>Remove</button>
          </li>
        ))}
      </ul>
      <div>
        <input
          type="text"
          placeholder="Enter a new task"
          onKeyDown={(e) => {
            if (e.key === 'Enter') {
              addTask(e.target.value);
              e.target.value = '';
            }
          }}
        />
      </div>
    </div>
  );
}

export default TodoList;

Trong ví dụ này, useState được sử dụng để tạo trạng thái tasks là một mảng rỗng. Hàm addTask sử dụng setTasks để thêm một công việc mới vào danh sách công việc. Hàm removeTask sử dụng setTasks để loại bỏ công việc khỏi danh sách.

Khi người dùng nhập một công việc mới và nhấn Enter, công việc mới sẽ được thêm vào danh sách và danh sách công việc sẽ được hiển thị. Mỗi công việc sẽ đi kèm với một nút “Remove” để người dùng có thể xoá công việc khi cần.

Trong thực tế, việc sử dụng useState có thể được mở rộng để quản lý nhiều trạng thái và logic phức tạp hơn trong các ứng dụng React của bạn. Trên đây là giới thiệu về useState trong React JS.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top