Làm sinh động menu thả xuống là ý tưởng hay. Sau đây là cách làm menu thả xuống đẹp mắt bằng React Select.

Một trường nhập lựa chọn là thành phần ứng dụng web hữu ích, cho phép bạn chọn một giá trị từ nhiều lựa chọn mà không chiếm nhiều dung lượng. Thế nhưng kiểu mặc định có thể buồn tẻ và không hài hòa với phần còn lại của thiết kế.
React Select cung cấp giải pháp linh hoạt và có thể tùy biến để nâng cao hình ảnh và tính năng của các đầu vào thả xuống.
Cài đặt React Select
Tích hợp React với những thư viện hoặc công nghệ khác, như React Select, React Redux… có thể đơn giản hóa quá trình phát triển.
Để bắt đầu với React Select, bạn cần cài đặt nó trong dự án. Để làm việc này bằng npm, chạy lệnh terminal trong thư mục dự án:
npm i --save react-selectLệnh này sẽ cài đặt và thiết lập thư viện trong dự án React, vì thế, bạn có thể bắt đầu sử dụng nó.
Tạo các đầu vào lựa chọn với React Select
Sau khi đã thiết lập thư viện, bạn có thể dùng nó để tạo các đầu vào lựa chọn. Để làm việc này, bạn sẽ dùng thành phần Select. Nó có khả năng tùy biến cao, cho phép người dùng chọn các lựa chọn từ một danh sách.
Ví dụ về cách dùng thành phần Select:
import React from "react"
import Select from "react-select"
function App() {
  const options = [
    { value: "apple", label: "Apple" },
    { value: "pineapple", label: "Pineapple" },
    { value: "watermelon", label: "Watermelon" },
  ]
  return (
    <div>
      <Select options={options} />
    </div>
  )
}
export default AppVí dụ này bắt đầu bằng cách nhập thành phần Select từ “react-select”. Nó xác định mảng options với 3 đối tượng. Từng đối tượng đều có thuộc tính value và label. Thuộc tính giá trị đại diện cho giá trị mà biểu mẫu sẽ gửi tới backend khi bạn gửi nó. Thuộc tính nhãn là nội dung mà thành phần Select sẽ hiện trong menu thả xuống.
Khi bạn hiện thành phần Select, chuyển mảng lựa chọn vào nó bằng thuộc tính options.
Với khối code này, thư viện React Select sẽ tạo một menu thả xuống như thế này:

Tùy biến các đầu vào lựa chọn
React Select cung cấp các cách khác nhau để tùy biến đầu vào lựa chọn. Bạn có thể dùng class CSS hoặc áp dụng trực tiếp các kiểu nội tuyến cho đầu vào lựa chọn như ý muốn.
Tùy biến với class CSS
Thư viện React Select cung cấp một thuộc tính className cho thành phần Select. Dùng thuộc tính className để áp dụng các kiểu CSS tùy biến cho những phần tử Select.
Ví dụ:
import React from "react"
import Select from "react-select"
function App() {
  const options = [
    { value: "apple", label: "Apple" },
    { value: "pineapple", label: "Pineapple" },
    { value: "watermelon", label: "Watermelon" },
  ]
  return (
    <div>
      <Select options={options} className='select'/>
    </div>
  )
}
export default AppKhối code trên tương tự như ở ví dụ trước, nhưng nó dùng thuộc tính className để áp dụng một class CSS tùy biến cho thành phần Select. Đặt tên cho thuộc tính className và bạn có thể dùng nó để áp dụng các kiểu CSS cho thành phần này:
.select {
  color: #333333;
  font-family: cursive;
  inline-size: 30%;
  font-size: 11px;
}Sau khi xác định các kiểu, trường lựa chọn trông sẽ như sau:

Tùy biến với các kiểu nội tuyến
Bạn cũng có thể xác định các kiểu nội tuyến trong một đối tượng mà bạn chuyển qua thuộc tính styles của thành phần Select. Điều này cho bạn nhiều quyền hơn để kiểm soát kiểu của từng thành phần.
Ví dụ:
import React from "react"
import Select from "react-select"
function App() {
  const options = [
    { value: "apple", label: "Apple" },
    { value: "pineapple", label: "Pineapple" },
    { value: "watermelon", label: "Watermelon" },
  ]
  const customStyles = {
    control: (baseStyles, state) => ({
      ...baseStyles,
      backgroundColor: "#e2e2e2",
    }),
    option: (baseStyles, state) => ({
      ...baseStyles,
      backgroundColor: state.isFocused ? "#e2e2e2" : "",
      color: state.isFocused ? "#333333" : "#FFFFFF",
    }),
    menu: (baseStyles, state) => ({
      ...baseStyles,
      backgroundColor: "#333333",
    }),
  }
  return (
    <div>
      <Select options={options} styles={customStyles} />
    </div>
  )
}
export default AppĐối tượng thuộc tính, customStyles, chứa các thuộc tính kiểu cho các phần control, option và menu của Select. Những thuộc tính này là các hàm tính hai đối số: baseStyles & state.
Tham số baseStyles đại diện cho các kiểu mặc định, được cung cấp bởi React Select, còn tham số state đại diện cho trạng thái hiện tại của phần tử này. Xét ví dụ trên, các hàm dùng spread operator để kết hợp baseStyles với những kiểu bổ sung cho từng phần của thành phần liên quan.
Sau khi áp dụng những kiểu này, đầu vào lựa chọn trông sẽ như sau:

Trên đây là cách tạo menu thả xuống đẹp mắt bằng React Select. Hi vọng bài viết hữu ích với các bạn.
 Học IT
 Học IT  
  
  
  
  
  
  
  
  
  
 
 Lập trình
 Lập trình  SQL
 SQL  Python
 Python  Cơ sở dữ liệu
 Cơ sở dữ liệu  AngularJS
 AngularJS  Cấu trúc dữ liệu và giải thuật
 Cấu trúc dữ liệu và giải thuật 









 Công nghệ
 Công nghệ  Nền tảng Web
 Nền tảng Web  Microsoft Word 2013
 Microsoft Word 2013  Microsoft Word 2007
 Microsoft Word 2007  Microsoft Excel 2019
 Microsoft Excel 2019  Microsoft Excel 2016
 Microsoft Excel 2016  Microsoft PowerPoint 2019
 Microsoft PowerPoint 2019  Microsoft PowerPoint 2016
 Microsoft PowerPoint 2016  Google Sheets
 Google Sheets  HTML
 HTML  Lập trình Scratch
 Lập trình Scratch  CSS và CSS3
 CSS và CSS3  Lập trình C
 Lập trình C  Lập trình C++
 Lập trình C++  Lập trình C#
 Lập trình C#  Học PHP
 Học PHP  Bootstrap
 Bootstrap  SQL Server
 SQL Server  JavaScript
 JavaScript  Unix/Linux
 Unix/Linux  Khoa học vui
 Khoa học vui  Khám phá khoa học
 Khám phá khoa học  Bí ẩn - Chuyện lạ
 Bí ẩn - Chuyện lạ  Sức khỏe
 Sức khỏe  Vũ trụ
 Vũ trụ  Khám phá thiên nhiên
 Khám phá thiên nhiên  Bảo vệ Môi trường
 Bảo vệ Môi trường  Phát minh Khoa học
 Phát minh Khoa học  Tết 2025
 Tết 2025  Video
 Video  Hướng dẫn
 Hướng dẫn  Công nghệ
 Công nghệ  Khoa học
 Khoa học  Ô tô, Xe máy
 Ô tô, Xe máy  Tổng hợp
 Tổng hợp