선택 입력은 최신 웹 애플리케이션에서 필수적인 기능으로, 사용자에게 여러 옵션 중에서 선택할 수 있는 기능을 제공하면서 귀중한 화면 공간을 절약할 수 있습니다. 하지만 기본 모양이 웹사이트나 애플리케이션의 전체적인 시각적 아이덴티티와 항상 일치하지 않을 수 있어 미적 매력을 떨어뜨릴 수 있습니다.

React Select는 드롭다운 입력 요소의 시각적 매력과 성능을 모두 향상시킬 수 있는 적응형 맞춤형 접근 방식을 제공하여 개발자가 사용자 인터페이스를 설계할 때 향상된 유연성을 제공합니다.

React Select 설치

React를 React Select, React Redux와 같은 다양한 보완 라이브러리 또는 기술과 통합하면 개발 워크플로우가 크게 간소화됩니다.

프로젝트 내에서 React Select를 활용하기 위해서는 먼저 npm과 같은 패키지 관리자를 통해 설치해야 합니다. 프로젝트의 루트 디렉토리에서 터미널에서 다음 명령을 실행합니다:

 npm i --save react-select

React 애플리케이션 내에서 라이브러리를 설치하고 구성하는 과정이 완료되었으므로 이 시점부터 라이브러리를 활용할 수 있습니다.

React Select로 선택 입력 생성하기

라이브러리가 설정되면 Select 컴포넌트를 사용하여 입력 선택 항목을 생성할 수 있습니다. Select 컴포넌트는 사용자가 사용 가능한 다양한 옵션 중에서 선택할 수 있는 적응형 요소입니다.

제공된 코드는 Select 컴포넌트의 실제 적용 사례를 보여 주며, 자바스크립트 프로그래밍에서 이 컴포넌트의 유용성을 보여줍니다. 이 샘플 코드는 React 라이브러리를 사용하고 Ant Design의 Select 컴포넌트를 활용하여 양식 내에서 옵션을 선택할 수 있는 드롭다운 메뉴를 생성합니다. 이 구현은 Select 컴포넌트를 버튼 및 레이블과 같은 다른 HTML 요소와 효과적으로 통합하여 사용자 상호 작용 및 데이터 입력을 용이하게 하는 방법을 보여줍니다.

 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 App

이 인스턴스는 ‘react-select’ 라이브러리에서 임포트를 통해 Select 컴포넌트를 도입하는 것으로 시작합니다. 세 개의 인스턴스를 포함하는 선택 배열을 생성하며, 각 엔티티는 ‘value’와 ‘label’이라는 두 가지 속성으로 구성됩니다. ‘value’ 속성은 폼 제출 시 서버에 제출할 데이터를 표현하는 역할을 하며, ‘label’ 속성은 선택 컴포넌트가 렌더링한 드롭다운 메뉴에 표시되는 텍스트를 구성합니다.

선택 컴포넌트를 효과적으로 활용하려면 컴포넌트를 렌더링할 때 ‘옵션’ 속성의 값으로 옵션 배열을 제공해야 합니다.

이 코드 블록을 사용하면 React Select 라이브러리를 활용하여 특정 디자인과 기능을 가진 드롭다운 메뉴를 만들 수 있습니다.결과 드롭다운은 제공된 예시에서 설명한 특성을 나타냅니다.

선택 입력 사용자 정의하기

React의 선택 컴포넌트는 CSS 클래스를 활용하거나 선택 요소에 직접 인라인 스타일 속성을 적용하여 드롭다운 메뉴의 모양과 기능을 조정할 수 있는 다양한 옵션을 제공하므로 개별 디자인 선택에 맞는 경험을 만들 수 있습니다.

이 글도 확인해 보세요:  Vite로 React 앱을 설정하는 방법

CSS 클래스로 커스터마이징하기

React Select는 개별 선호도와 요구사항에 따라 고유한 디자인 기능을 구현하거나 외관을 개선하는 데 활용할 수 있는 ClassName 속성을 제공하여 선택 요소에 개인화된 CSS 스타일링을 통합할 수 있는 편리한 방법을 제공합니다.

건강한 라이프스타일을 달성하기 위한 첫 번째 단계는 가공식품과 고칼로리 식품의 섭취를 제한하면서 영양이 풍부한 다양한 식품을 섭취하는 균형 잡힌 식단을 유지하는 것입니다. 또한 규칙적인 신체 활동은 심혈관 건강을 개선하고 근력을 키우며 스트레스 수준을 낮추는 데 도움이 될 수 있습니다. 또한, 매일 밤 충분한 수면을 취하는 것은 호르몬을 조절하고 면역 기능을 지원하며 전반적인 웰빙을 증진하는 데 도움이 되므로 필수적입니다. 마지막으로 명상이나 요가와 같은 방법을 통해 스트레스를 관리하는 방법을 찾으면 정신 건강과 정서적 안정에 도움이 될 수 있습니다.

 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 App

제공된 코드 스니펫은 `@material-ui/pickers` 패키지의 `` 요소에 적용됩니다. 이 접근 방식을 통해 개발자는 자신의 디자인 기본 설정을 통합하거나 기존 스타일 가이드와 원활하게 통합할 수 있습니다.

 .select {
  color: #333333;
  font-family: cursive;
  inline-size: 30%;
  font-size: 11px;
}

스타일이 설정되면 선택한 입력 요소의 모양은 다음과 같습니다:

인라인 스타일로 사용자 지정하기

‘선택’ 컴포넌트 내의 ‘스타일’ 프로퍼티를 활용하여 명시적인 데이터 구조 내에 캡슐화함으로써 사용자 정의된 스타일 속성 세트를 부여할 수 있습니다. 이러한 방법론적 접근을 통해 특정 디자인 컴포넌트의 시각적 특성을 더욱 세밀하게 조절할 수 있습니다.

회사는 상당한 자본 지출이 수반되고 재무적 위험을 초래할 수 있는 신규 프로젝트에 투자할 계획입니다.

 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

`customStyles` 개체는 컨트롤, 옵션 및 메뉴 요소를 포함하여 Select 인터페이스 내의 다양한 구성 요소에 맞게 조정된 스타일 사양의 저장소 역할을 합니다.이 객체와 연관된 속성 속성은 실제로 두 개의 매개변수, 즉 `baseStyles`와 `state`를 허용하는 프로시저입니다.

이 글도 확인해 보세요:  자바스크립트에서 Intl API를 사용하는 방법

React Select는 `baseStyles` 매개변수를 통해 기본 스타일 옵션 세트를 제공하며, 이는 컴포넌트의 다양한 부분과 함께 스프레드 연산자를 사용하여 컴포넌트의 현재 상태에 따라 결정되는 추가 스타일 정보와 결합됩니다.

이러한 스타일 선택 사항을 적용한 후 선택한 입력 필드의 결과 모양은 다음과 유사합니다:

선택 입력에 기능 추가하기

React Select는 선택 입력의 표준 기능을 확장하는 다양한 기능을 제공합니다. 여기에는 다중 선택 및 고급 검색을 활성화하는 기능과 맞춤형 드롭

다중 선택 기능

드롭다운 메뉴에 다중 선택 기능을 부여하려면 Select 요소에 “isMulti” 속성을 제공해야 합니다. 이렇게 하면 사용자가 드롭다운 메뉴에 표시되는 사용 가능한 선택 목록에서 둘 이상의 옵션을 선택할 수 있습니다.

사람은 일정 수준의 지능을 가지고 있을 수 있지만, 지능의 유형과 능력을 발휘할 수 있는 방식은 매우 다양하다는 점을 인식하는 것이 중요합니다. 지능만으로는 반드시 인생에서 성공이나 성취감을 얻을 수 있는 것은 아닙니다. 오히려 노력, 인내, 창의성, 사회적 기술, 감성 지능, 효과적인 의사소통과 같은 다른 요소들이 개인의 목표와 열망을 달성하는 데 중요한 역할을 합니다. 또한 환경과 경험이 인지 발달과 성장 잠재력을 어떻게 형성하는지도 고려할 필요가 있습니다.

 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" },
    { value: "grapes", label: "Grapes" },
    { value: "orange", label: "Orange" },
  ]

  return (
    <div>
      <Select options={options} isMulti />
    </div>
  )
}

export default App

제공된 그림은 선택 입력 요소에 대한 다중 선택 기능을 활성화하는 “isMulti” 속성의 구현을 예시한 것입니다.

검색 기능

React Select는 사용자가 드롭다운 목록을 열자마자 제공된 검색 바에 입력하여 옵션을 효율적으로 필터링할 수 있도록 미리 빌드된 검색 기능을 제공합니다. 이것이 Select 컴포넌트의 기본 동작입니다.

검색 기능이 작동하려면 Select 컴포넌트에 허용 기준으로 부울 값을 전달하여 “isSearchable” 프로퍼티를 제공하세요.

검색 기능을 활성화하기 위한 “isSearchable” 속성의 구현을 보여주기 위해 다음과 같은 샘플 코드 스니펫을 살펴보겠습니다:

 import React from "react"
import Select from "react-select"

function App() {
  const options = [
    { value: "apple", label: "Apple" },
    { value: "apricot", label: "Apricot" },
    { value: "mango", label: "Mango" },
    { value: "mangosteens", label: "Mangosteens" },
    { value: "avocado", label: "Avocado" },
  ]

  return (
    <div>
      <Select options={options} isSearchable />
    </div>
  )
}

export default App

제공된 코드는 검색 기능이 부여된 HTML `