npm 包 react-fuzzy 使用教程

简介

react-fuzzy 是一种用于 React.js 应用程序的模糊搜索组件,它使用户可以快速搜索和选择合适的选项。它支持键入的搜索、下拉列表、多选和单选模式。

安装

react-fuzzy 可以通过 npm 安装:

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

或者 yarn 安装:

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

用法

使用 react-fuzzy 的基本步骤如下:

  1. 导入 react-fuzzy:
------ ----------- ---- --------------
  1. 在组件中设置 initialState:
----- ------------- --------------- - -------------
----- --------- ----------- - ----------
  - ------ ------- --
  - ------ -------- --
  - ------ ------------ --
---
  1. 渲染组件:
------------
  ----------------
  -------------------
  -----------------
  ------------ ------ -- -- -----------------------------
  -------------------- -- ----------------------
--

在这个例子中,我们设置了搜索标签键(labelKey)、搜索值、选项(options)、搜索值的 onChange 和选择 onSelect 处理函数。

  1. 根据需要设置其他属性:
------------
  ----------------
  -------------------
  -----------------
  ------------ ------ -- -- -----------------------------
  -------------------- -- ----------------------
  ------------------- -------
  -------------
  ----------------
--

在这个例子中,我们设置了占位符、在按下 Esc 时清除搜索值和关闭多选模式。

高级用法

react-fuzzy 支持使用筛选器和自定义渲染器进行更高级的用法。筛选器允许你完全控制搜索结果,可以基于自己的逻辑提供筛选条件。

自定义渲染器允许你通过自己的 JSX 返回函数来完全控制渲染组件。

筛选器

要使用筛选器,可以在 useState 中配置 initialState:

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

在 render 中设置筛选器条件:

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

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

在 FuzzySearch 组件中使用 filterOptions 而不是 options:

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

自定义渲染器

要使用自定义渲染器,可以包装 FuzzySearch 组件并传入函数来替换默认的渲染器:

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

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

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

在这个例子中,我们用自定义渲染器函数 CustomRenderer 替换了默认渲染器。它接受一个对象,其中包含选项、onSelect 处理函数、selectedItems(多选模式用)和 setSelectedItems(多选模式用)。

示例代码

使用 ESM 语法的示例代码如下:

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

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

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

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

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

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

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

使用 CommonJS 语法的示例代码如下:

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

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

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

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

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

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

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

总结

react-fuzzy 是一个非常有用的组件,可以使用户能够快速地搜索和选择合适的选项。它具有许多高级用法,如筛选器和自定义渲染器,这些用法可以使你完全控制搜索结果和渲染结果。希望这篇文章对你学习 react-fuzzy 有所帮助。

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


猜你喜欢

  • npm 包 @0x-lerna-fork/init 使用教程

    前言 随着前端技术的不断发展,前端工程化的重要性日益凸显,而 Lerna 是一个优秀的针对大型多包管理的工具。而 @0x-lerna-fork/init 是一个基于 Lerna 二次封装的 NPM 包...

    5 年前
  • npm 包 @0x-lerna-fork/import 使用教程

    前言 在现代 Web 开发中,使用第三方的开源工具和库是很常见的一件事情。而 npm 作为一个 Node.js 的包管理器,是我们经常使用的一个工具。其中,@0x-lerna-fork/import ...

    5 年前
  • npm 包 @0x-lerna-fork/exec 使用教程

    介绍 @0x-lerna-fork/exec 是一个 Node.js 模块,用于在 Node.js 中运行子进程的命令并获取它们的输出。这个命令是 Lerna 的分支版本,由 0x 团队维护并改进,是...

    5 年前
  • npm 包 @0x-lerna-fork/diff 使用教程

    简介 @0x-lerna-fork/diff 是一个开源的 npm 包,用于比较两个 JavaScript 对象的差异。它是基于 diff 和 deep-diff 两个包开发的,可以用于前端、后端等各...

    5 年前
  • npm 包 @0x-lerna-fork/clean 使用教程

    在前端开发中,我们常常需要使用各种 npm 包来辅助我们完成任务。其中,一个非常实用的 npm 包是 @0x-lerna-fork/clean。该 npm 包可以帮助我们清理项目中的一些冗余文件,以提...

    5 年前
  • npm 包 @0x-lerna-fork/add 使用教程

    前言 在前端开发中,npm 管理包已经成为非常常见的方式之一。通过使用 npm 包,我们可以方便地引入第三方库,提高开发效率。本文将介绍一个使用 npm 包 @0x-lerna-fork/add 的方...

    5 年前
  • npm包 @0x-lerna-fork/global-options 使用教程

    前言 在前端开发中,我们经常使用npm包来完成一些开发工作。而@0x-lerna-fork/global-options是一个非常实用的npm包,它可以帮助我们更加便捷地处理命令行参数,加快应用程序的...

    5 年前
  • npm 包 infer-owner 使用教程

    在前端开发中,我们经常会使用各类的 npm 包来辅助开发,管理这些包是一件非常重要的事情。infer-owner 是一款可以帮助我们确定一个 npm 包的所有者的工具,今天就来介绍一下它的使用方法。

    5 年前
  • npm 包 @evocateur/npm-registry-fetch 使用教程

    介绍 npm 是 Node.js 生态系统中的包管理工具,方便开发者快速下载、安装、管理和发布 JavaScript 代码等多种类型的包,让开发过程更加便捷和高效。

    5 年前
  • npm 包 @0x-lerna-fork/run-topologically 使用教程

    如果你经常使用 npm,那么你一定知道它极其重要。npm 包是开发前端项目时必不可少的工具之一。本文将介绍一个叫做 @0x-lerna-fork/run-topologically 的 npm 包。

    5 年前
  • npm 包 @0x-lerna-fork/prompt 使用教程

    npm 是 Node.js 的官方包管理器,其丰富的包库可以满足前端开发所需的任何依赖。但是,随着依赖包的增加,越来越多的 Front-End 开发者有了碎片化的开发体验。

    5 年前
  • npm 包 @0x-lerna-fork/prerelease-id-from-version 使用教程

    简介 npm 包 @0x-lerna-fork/prerelease-id-from-version 是一个用于获取预发行版本的 id 的 JavaScript 工具,针对的是语义化版本(SemVer...

    5 年前
  • npm包 @0x-lerna-fork/gitlab-client的使用教程

    简介 在前端开发中,我们经常需要使用GitLab进行代码管理。@0x-lerna-fork/gitlab-client是一个npm包,提供了一系列Api,使得在前端项目中使用GitLab变得更加方便快...

    5 年前
  • npm 包 @0x-lerna-fork/github-client 使用教程

    简介 在前端开发过程中,经常需要操作 Github API 进行代码托管、版本管理等。为了更加便捷地使用 Github API ,@0x-lerna-fork/github-client 库应运而生。

    5 年前
  • npm 包 @0x-lerna-fork/conventional-commits 使用教程

    前言 在前端开发中,我们常常需要管理项目的版本号以及版本控制提交信息。常见的做法是使用 语义化版本控制规范,其中 conventional commits 是一种比较流行的规范,可以自动生成 chan...

    5 年前
  • npm 包 @0x-lerna-fork/filter-packages 使用教程

    介绍 在前端开发中,我们常常需要使用很多 npm 包来完成我们的工作。然而,有时候我们需要对这些包进行一定的筛选和过滤,以达到更好的效果。而 npm 包 @0x-lerna-fork/filter-p...

    5 年前
  • npm 包 @0x-lerna-fork/output 使用教程

    npm 包 @0x-lerna-fork/output 是一款非常有用的 Node.js 库,它提供了一种简单的方式将输出打印到控制台,同时保持代码的可读性。本文将详细介绍如何使用这个 npm 包。

    5 年前
  • npm 包 @0x-lerna-fork/listable 使用教程

    介绍 npm 包 @0x-lerna-fork/listable 是一款非常实用的前端工具,它可以帮助我们快速地创建一个可搜索、可排序、可过滤的列表。这款工具可与多种前端框架兼容,非常易于使用。

    5 年前
  • npm 包 @0x-lerna-fork/write-log-file 使用教程

    本文将介绍 npm 包 @0x-lerna-fork/write-log-file 的使用方法。此包能够帮助前端开发者在浏览器端快速地将日志信息写入本地文件中,方便调试和异常处理。

    5 年前
  • npm 包 @0x-lerna-fork/project 使用教程

    介绍 在前端开发中,我们经常需要使用一些第三方库或工具来帮助我们更高效地开发和调试应用。对于 JavaScript 开发者来说,npm 是一个非常重要的工具,它不仅提供了一个方便的包管理器,还能让我们...

    5 年前

相关推荐

    暂无文章