npm 包 downshift 使用教程

downshift 是一个基于 React 的轻量级开源库,旨在提供一种快速、灵活地开发基于下拉列表的 UI 组件的方法。利用 downshift 可以快速地开发出具有下拉选择功能,支持键盘选择和搜索功能的下拉列表组件。在本篇文章中,我们将详细介绍下shift 的使用方法,并提供一些示例代码和使用技巧。

安装

可以通过 npm 安装 downshift 包:

--- ------- --------- ------

使用案例

下面我们介绍如何使用 downshift 实现一个简单的搜索框,下拉列表提供查询结果供选择。

首先,我们需要导入 downshift 库并创建 Select 组件:

------ ------ - --------- - ---- --------
------ --------- ---- ------------

----- ------ ------- --------- -
  ----- - -
    ------ -
      - ------ ------------- --- - --
      - ------ ------- --- - --
      - ------ --------- --- - --
      - ------ ------ --- - -
    --
    ------------- ----
  --

  -------------- - -------------- -- -
    --------------- ------------ ---
  --

  -------- -
    ----- - ------ ------------ - - -----------

    ------ -
      ----------
        ------------------------------
        -------------------- -- ----- - ---------- - ----
        ---------------------------
      -
        ---
          --------------
          -------------
          --------------
          -------------
          -------
          -----------
          -----------------
          -------------
        -- -- -
          -----
            ------ --------------------------- --- ----------- ------------------
            ------ -------------------- --
            --- --------------------
              -------
                - -----
                    -------------- -- ----------- -- ------------------------------------------------------------
                    ----------- ------ -- -
                      ---
                        ------------------
                          ---- --------
                          ------
                          -----
                          ------ -
                            ---------------- ---------------- --- ----- - --------- - --------
                            ----------- ------------ --- ---- - ------ - ---------
                          --
                        ---
                      -
                        ------------
                      -----
                    --
                - -----
            -----
            ------------- - -
              ---
                --- ---- ------ -------------------------------------
              ----
            - - -----
          ------
        --
      ------------
    --
  -
-

------ ------- -------

可以看到,这里我们创建了一个状态对象,其中包含一个 items 数组和一个 selectedItem 对象。items 数组包含所支持的编程语言列表,每个编程语言都有一个 value 属性和一个唯一的 id 属性。selectedItem 对象包含当前选中的编程语言。

handleOnChange 函数用于在 downshift 组件中选中项目时更新 selectedItem 状态。

下面我们看一下 Downshift 组件:

----------
  ------------------------------
  -------------------- -- ----- - ---------- - ----
  ---------------------------
-
  ---
    --------------
    -------------
    --------------
    -------------
    -------
    -----------
    -----------------
    -------------
  -- -- -
    -----
      ---
    ------
  --
------------

我们需要向 Downshift 组件传递几个属性和方法:

  • onChange 必要属性,用于获取所选项的值。
  • itemToString 函数,用于将选定的内容显示在输入框中。
  • selectedItem 必要属性,用于在下拉列表中初始选择选项。

在 Downshift 组件内部,我们需要传递四个函数:

  • getInputProps:获取 input 元素的 props。
  • getItemProps:获取每个下拉列表项的 props(onClick、onMouseEnter 等事件)以及改变选项背景色等样式。
  • getLabelProps:获取 label 元素的 props。
  • getMenuProps:获取包括下拉列表项的 ul 元素的 props。
-
  ------
    - -----
        -------------- -- ----------- -- ------------------------------------------------------------
        ----------- ------ -- -
          ---
            ------------------
              ---- --------
              ------
              -----
              ------ -
                ---------------- ---------------- --- ----- - --------- - --------
                ----------- ------------ --- ---- - ------ - ---------
              --
            ---
          -
            ------------
          -----
        --
    - ----
-

getItemsProps 用到了 getItemProps 属性,创建一个下拉列表,利用 filter 方法过滤选择列表,筛选出与输入内容匹配的项,再利用 map 方法将新数组中的每个项链接到一个 li 标签上供选择。

结语

downshift 是一个强大的 React 库,它方便地实现了各种下拉列表的需求。在本文中,我们介绍了 downshift 的使用方法,并展示了如何利用其创建一个简单的搜索框示例。欢迎在实际项目中使用 downshift 来创建更加完善的下拉选择组件。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/115806


猜你喜欢

  • npm包: callbag-basics 使用教程

    在前端开发中,经常需要进行一系列异步或数据流的操作。基于这个需求,一个名为callbag-basics的npm包应运而生。它是一个强大且简单易用的库,可以简化数据流的处理和传递,使得开发人员可以更加专...

    5 年前
  • npm 包 @types/winston 使用教程

    什么是 @types/winston 在使用 TypeScript 开发 Node.js 应用程序时,我们经常需要使用一些 JavaScript 库。但是,这些 JavaScript 库可能没有提供 ...

    5 年前
  • npm 包 @types/hash-file 使用教程

    在前端开发中,我们经常需要对文件进行哈希值的计算,例如在构建过程中计算文件的版本号或者对文件进行校验。而 @types/hash-file 就是一个方便的 npm 包,可以帮助我们快速地进行文件哈希值...

    5 年前
  • npm 包 @types/fluent-ffmpeg 使用教程

    在前端开发中,很多时候需要处理音视频的相关操作,比如音频的播放,视频的剪辑等等。而针对这些操作,fluent-ffmpeg 是一个不错的解决方案。同时,为了更好的开发体验,@types/fluent-...

    5 年前
  • npm包 @types/execa使用教程

    什么是execa? execa是一个用于子进程处理的npm包,在Node.js中使用非常广泛。它支持Promise API,可以跨平台(Windows、Linux、MacOS等)使用,具有良好的错误处...

    5 年前
  • npm 包 @3m/api 使用教程

    介绍 在前端开发中,使用第三方库和工具包时是很常见的。npm 包就是一个非常重要的工具,它可以帮助前端工程师管理依赖项和编写模块化的代码。而 @3m/api 就是一个实用的 npm 包,它提供了一些常...

    5 年前
  • npm 包 @zkochan/rimraf 使用教程

    简介 npm 是 node.js 中最常用的包管理工具,它允许用户安装和分享 JavaScript 代码作为软件包或模块。@zkochan/rimraf 是一个由 Zoltan Kochan 开发的 ...

    5 年前
  • npm 包 @pnpm/store-controller-types 的使用教程

    简介 npm 是 Node.js 的包管理器,通过它能够方便地获取并安装自己开发所需要的包。而 @pnpm/store-controller-types 是用作包管理器的控制器类型,可以帮助前端开发者...

    5 年前
  • npm包@pnpm/read-package-json使用教程

    什么是@pnpm/read-package-json? 在Node.js生态圈中,npm包是一种极为重要的资源。@pnpm/read-package-json是一个npm包,旨在解析和读取packag...

    5 年前
  • npm 包 @pnpm/fetcher-base 使用教程

    简介 在前端项目中,我们经常会使用 npm 包管理工具,而 @pnpm/fetcher-base 是一个 npm 的依赖项提供者,具有快速、高效、干净的特性,经常被用于前端项目。

    5 年前
  • npm 包 @pnpm/core-loggers 使用教程

    介绍 本文将介绍 @pnpm/core-loggers 这个 npm 包的使用教程。@pnpm/core-loggers 是 pnpm 这个项目的一个核心模块,主要用于记录 pnpm 执行过程中的日志...

    5 年前
  • npm包 fetch-from-npm-registry 使用教程

    在前端开发中,我们经常需要使用第三方的库来加速开发。为了方便管理这些库,我们常常使用 npm 包管理器。然而,在使用过程中,我们有时需要从 npm 注册表中获取包,fetch-from-npm-reg...

    5 年前
  • npm 包 encode-registry 使用教程

    在前端开发中,我们常常需要将数据进行编码和解码,以确保数据的安全性和可传输性。其中,Base64 是一种常用的编码算法,可以将二进制数据转换成可打印字符。而在使用 Base64 进行编码和解码时,我们...

    5 年前
  • npm 包 credentials-by-uri 使用教程

    在前端开发过程中,我们经常需要通过 URI 的形式获取资源,例如图片、JavaScript 文件、CSS 文件等。有些资源需要进行认证才能够访问,这就需要使用到 credentials-by-uri ...

    5 年前
  • npm 包 @pnpm/resolver-base 使用教程

    前言 在前端开发中,npm 是一个非常常用的包管理工具。而 @pnpm/resolver-base 是 npm 包之一,主要用于解析 npm 包中的依赖关系。本文将介绍如何使用 @pnpm/resol...

    5 年前
  • npm 包 @pnpm/error 使用教程

    前言 在日常前端开发中,我们经常使用各种 npm 包,其中 @pnpm/error 是一个专门处理 pnpm 相关错误的 npm 包。本文将详细介绍如何使用 @pnpm/error 包及其在实践中的应...

    5 年前
  • npm 包 dint 使用教程

    在前端开发中,我们经常需要对数字进行处理,比如四舍五入、保留小数位数等操作。而 npm 包 dint 就是一个用来方便地处理数字的工具。 安装 要使用 dint,我们首先需要在项目中安装该包。

    5 年前
  • npm 包 @types/shelljs 使用教程

    前端开发中,经常需要通过命令行与操作系统进行交互,例如编译代码、压缩图片等。而 shelljs 是 Node.js 的一种轻量级模块,提供了与 shell 交互的 API,使得在 JavaScript...

    5 年前
  • npm 包 @types/figlet 使用教程

    前言 在进行前端开发时,我们经常会需要在页面上展示一些艺术字,为此,我们可以使用第三方库 figlet。但是在 TypeScript 中使用 figlet 时,编译器可能会提示错误,因为 figlet...

    5 年前
  • npm 包 @dynrl/service-data-models 使用教程

    在前端开发过程中,我们经常需要使用到数据模型来描述数据的结构和关系。而 @dynrl/service-data-models 就是一款优秀的 npm 包,它提供了一系列功能强大、易使用的数据模型,能够...

    5 年前

相关推荐

    暂无文章