react-dropdown-select vs react-select
React用セレクトボックスライブラリ
react-dropdown-selectreact-select類似パッケージ:

React用セレクトボックスライブラリ

React用のセレクトボックスライブラリは、ユーザーが選択肢から項目を選ぶためのインターフェースを提供します。これらのライブラリは、ユーザーエクスペリエンスを向上させるために、カスタマイズ可能で、さまざまな機能を備えています。特に、データの選択やフィルタリングが必要な場面で役立ちます。

npmのダウンロードトレンド

3 年

GitHub Starsランキング

統計詳細

パッケージ
ダウンロード数
Stars
サイズ
Issues
公開日時
ライセンス
react-dropdown-select0365187 kB321年前MIT
react-select028,039726 kB4881年前MIT

機能比較: react-dropdown-select vs react-select

カスタマイズ性

  • react-dropdown-select:

    react-dropdown-selectは、スタイルやオプションを簡単にカスタマイズできる柔軟性を提供します。デフォルトのスタイルを変更したり、独自のコンポーネントを使用して、特定のニーズに合わせたUIを構築できます。

  • react-select:

    react-selectは、テーマやスタイルのカスタマイズが非常に豊富で、さまざまなプロパティを通じて詳細な設定が可能です。特に、複雑なUI要件を持つアプリケーションにおいて、デザインの一貫性を保ちながら柔軟に対応できます。

パフォーマンス

  • react-dropdown-select:

    react-dropdown-selectは、軽量な設計により、特に小規模なデータセットに対して優れたパフォーマンスを発揮します。選択肢が少ない場合、スムーズな操作が可能です。

  • react-select:

    react-selectは、大規模なデータセットに対しても効率的に動作するように設計されており、バーチャルスクロールや遅延読み込み機能をサポートしています。これにより、ユーザーが大量の選択肢を扱う際のパフォーマンスが向上します。

ユーザーエクスペリエンス

  • react-dropdown-select:

    react-dropdown-selectは、シンプルで直感的なインターフェースを提供し、ユーザーが迅速に選択できるように設計されています。特に、モバイルデバイスでの操作性が良好です。

  • react-select:

    react-selectは、検索機能やフィルタリング機能を備えており、ユーザーが大量の選択肢から迅速に目的の項目を見つけることができます。これにより、ユーザーエクスペリエンスが向上します。

サポートとコミュニティ

  • react-dropdown-select:

    react-dropdown-selectは、比較的小規模なコミュニティを持っていますが、ドキュメントが充実しており、基本的な使用法については容易に理解できます。

  • react-select:

    react-selectは、広範なコミュニティとサポートがあり、多くのリソースやサンプルが利用可能です。問題が発生した場合でも、解決策を見つけやすい環境が整っています。

学習曲線

  • react-dropdown-select:

    react-dropdown-selectは、シンプルなAPI設計により、初心者でも比較的簡単に学習できるため、迅速にプロジェクトに組み込むことができます。

  • react-select:

    react-selectは、機能が豊富であるため、最初は学習曲線がやや急ですが、習得すれば強力なツールとして活用できます。特に、カスタマイズや拡張が必要な場合にその真価を発揮します。

選び方: react-dropdown-select vs react-select

  • react-dropdown-select:

    react-dropdown-selectは、シンプルで直感的なUIを提供し、複数選択やカスタムオプションの追加が容易です。特に、軽量なアプリケーションや簡単な選択肢が必要な場合に適しています。

  • react-select:

    react-selectは、より多機能でカスタマイズ性が高く、複雑な選択肢や検索機能を必要とする場合に最適です。大規模なアプリケーションや多くのデータを扱う場合に向いています。

react-dropdown-select のREADME

react-dropdown-select

Customisable dropdown select for react

Coverage Status Codacy Badge

Features

  • configurable via props
  • total custom components overrides for all internals via render prop callbacks (with access to internal props, state and methods)
  • stylable via css (or custom components)
  • portal support for rendering dropdown outside local DOM tree. e.g. in document.body
  • auto position
  • small bundle size

Installation

npm install --save react-dropdown-select

Web site

Web site, docs and demo

Motivation

react-select is very nice, but sometimes project requirements are beyond it's abilities

Usage

import:

import Select from "react-dropdown-select";

and use as:

const options = [
  {
    value: 1,
    label: 'Leanne Graham'
  },
  {
    value: 2,
    label: 'Ervin Howell'
  }
];

<Select options={options} onChange={(values) => this.setValues(values)} />;

If your options don't have value and label fields, include labelField and valueField in the props:

const options = [
  {
    id: 1,
    name: 'Leanne Graham'
  },
  {
    id: 2,
    name: 'Ervin Howell'
  }
];

<Select
  options={options}
  labelField="name"
  valueField="id"
  onChange={(values) => this.setValues(values)}
/>;

options and onChange are the minimum required props

Help and Contributions

How to help/contribute

  • fix issues, pull request are very welcome
  • write, improve docs
  • write tests (we use jest)
  • suggest features and improvements

Demo

Edit react-dropdown-select

API

Component props

PropTypeDefaultDescription
valuesarray[]Selected values
optionsarray[]Available options, (option with key disabled: true will be disabled)
keepOpenboolfalseIf true, dropdown will always stay open (good for debugging)
defaultMenuIsOpenboolfalseIf true, dropdown will be open by default
autoFocusboolfalseIf true, and searchable, dropdown will auto focus
clearOnBlurbooltrueIf true, and searchable, search value will be cleared on blur
clearOnSelectbooltrueIf true, and searchable, search value will be cleared upon value select/de-select
namestringnullIf set, input type hidden would be added in the component with the value of the name prop as name and select's values as value
requiredboolfalseIf set, input type hidden would be added in the component with required prop as true/false
patternstringnullIf set, input type hidden would be added in the component with pattern prop as regex
dropdownGapnumber5Gap between select element and dropdown
multiboolfalseIf true - will act as multi-select, if false - only one option will be selected at the time
placeholderstring"Select..."Placeholder shown where there are no selected values
addPlaceholderstring""Secondary placeholder on search field if any value selected
disabledboolfalseDisable select and all interactions
styleobject{}Style object to pass to select
classNamestringCSS class attribute to pass to select
loadingboolfalseLoading indicator
clearableboolfalseClear all indicator
searchablebooltrueIf true, select will have search input text
separatorboolfalseSeparator line between close all and dropdown handle
dropdownHandlebooltrueDropdown handle to open/close dropdown
dropdownHeightstring"300px"Minimum height of a dropdown
directionstring"ltr"direction of a dropdown "ltr", "rtl" or "auto"
searchBystringlabelSearch by object property in values
sortBystringnullSort by object property in values
labelFieldstring"label"Field in data to use for label
valueFieldstring"value"Field in data to use for value
colorstring"#0074D9"Base color to use in component, also can be overwritten via CSS
closeOnScrollboolfalseIf true, scrolling the page will close the dropdown
closeOnSelectboolfalseIf true, selecting option will close the dropdown
closeOnClickInputboolfalseIf true, clicking input will close the dropdown if you are not searching.
dropdownPositionstring"bottom"Available options are "auto", "top" and "bottom" defaults to "bottom". Auto will adjust itself according Select's position on the page
keepSelectedInListbooltrueIf false, selected item will not appear in a list
portalDOM elementfalseIf valid dom element specified - dropdown will break out to render inside the specified element
createboolfalseIf true, select will create value from search string and fire onCreateNew callback prop
backspaceDeletebooltrueIf true, backspace key will delete last value
createNewLabelstring"add {search}"If create set to true, this will be the label of the "add new" component. {search} will be replaced by search value
disabledLabelstring"disabled"Label shown on disabled field (after) the text
selectAllboolfalseAllow to select all
selectAllLabelstring"Select all"Label for "Select all"
clearAllLabelstring"Clear all"Label for "Clear all"
additionalPropsobjectnullAdditional props to pass to Select

Callback props

by using renderer props to override components some of the functionality will have to be handled manually with a help of internal props, states and methods exposed

PropTypeDefaultDescription
onChangefuncOn values change (user and internally triggered) callback, returns array of values objects
onSelectfuncOn values change (user triggered) callback, returns array of values objects
onDeselectfuncOn values change (user triggered) callback, returns array of values objects
onDropdownClosefuncFires upon dropdown close
onDropdownOpenfuncFires upon dropdown open
onCreateNewfuncFires upon creation of new item if create prop set to true
onClearAllfuncFires upon clearing all values (via custom renderers)
onSelectAllfuncFires upon selecting all values (via custom renderers)
onDropdownCloseRequestfuncundefinedFires upon dropdown closing state, stops the closing and provides own method close()
contentRendererfuncOverrides internal content component (the contents of the select component)
itemRendererfuncOverrides internal item in a dropdown
noDataRendererfuncOverrides internal "no data" (shown where search has no results)
optionRendererfuncOverrides internal option (the pillow with an "x") on the select content
inputRendererfuncOverrides internal input text
loadingRendererfuncOverrides internal loading
clearRendererfuncOverrides internal clear button
separatorRendererfuncOverrides internal separator
dropdownRendererfuncOverrides internal dropdown component
dropdownHandleRendererfuncOverrides internal dropdown handle
searchFnfuncundefinedOverrides internal search function
handleKeyDownFnfuncundefinedOverrides internal keyDown function

License

MIT