npm 包 @atlaskit/multi-select 使用教程

@atlaskit/multi-select 是一个基于 React 的多选框组件,可以轻松地生成一个可搜索、可多选的下拉菜单。在前端开发过程中,多选框是一个很常见的组件,而 @atlaskit/multi-select 可以大大提高开发效率和用户体验。

安装

可以通过 npm 来安装 @atlaskit/multi-select 包:

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

引入

在使用 @atlaskit/multi-select 组件前,需要将其引入到项目中:

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

使用

最简单的使用方法是将 MultiSelect 组件放在 React 组件的 render 方法中:

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

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

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

上述代码使用了一个数组作为 options,每个选项可以指定标签和值,同时还指定了占位符 placeholder 和选择后的回调函数 onChange

更多使用的详细信息可以参考 官方文档

深度学习

1. 自定义选项

MultiSelect 组件提供了默认的选项模板,但是如果需要自定义选项样式,可以通过 getOptionLabelgetOptionValueOption 三个属性来实现。

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

其中,getOptionLabel 函数返回选项的文本表示,getOptionValue 函数返回选项的值,Option 组件则用于渲染每一个选项。

2. 自定义样式

要自定义样式,需要在引入 MultiSelect 的地方引入样式文件,然后将样式传入 styles 属性中:

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

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

其中,./styles.css 是自定义的样式文件,具体样式代码可以参考 默认样式

3. 自定义 Loading

在使用 asyncSelect 属性时,可以自定义 Loading 图标和文本:

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

其中,loadingMessage 属性返回 Loading 状态下的文本,noOptionsMessage 返回无匹配项时的文本。

指导意义

使用 @atlaskit/multi-select 包可以方便地实现多选框组件,并且可以通过自定义选项和样式、异步搜索等功能定制化业务需求。这样可以提高开发效率,减少不必要的代码量。

同时,由于 @atlaskit/multi-select 代码开源,对于开发 React 组件的同学,可以参考其实现方式并且使用 Design System 开发模式,提高代码可复用性和可维护性。

更多 Design System 开发模式的信息可以参考本人的博客文章:Design System 开发模式在企业级前端应用中的实践

完整代码示例:

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

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

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

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

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

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


猜你喜欢

  • npm 包 appolo-event-dispatcher 使用教程

    在前端开发过程中,我们常常需要对事件进行管理和处理。对于多维度和复杂的应用程序,我们需要一个可靠的事件管理框架,这时候 npm 包 appolo-event-dispatcher 可能会成为你的一个好...

    4 年前
  • NPM 包 Apollo-Route 使用教程

    如果你是一个前端开发者,你一定不会对 Apollo-Route 这个 NPM 包感到陌生。它是一个非常流行的路由管理工具,帮助开发者更轻松地管理页面路由,提高开发效率。

    4 年前
  • npm 包 appolo-agent 使用教程

    在现代Web开发中,构建高效的应用程序以及保持其性能和稳定性已经成为了开发人员的首要目标。为了实现这一点,使用工具来分析和监视应用程序是很重要的。Appolo Agent是一个优秀的npm包,可以帮助...

    4 年前
  • npm包 @appolo/events使用教程

    简介 @appolo/events是一款轻量级的事件库,能够在前端和后端应用中实现事件驱动程序的设计模式。 安装 通过npm安装: --- ------- -------------- ------初...

    4 年前
  • npm包@appolo/inject使用教程

    在前端开发中,使用npm包已经成为了非常常见的操作。在依赖管理方面,npm是所有前端开发者最常用的工具之一。在本文中,我们将介绍npm包中的一个重要组件:@appolo/inject,包含详细的使用教...

    4 年前
  • npm 包 @appolo/utils 使用教程

    前言 在前端开发中,我们经常会使用到各种各样的工具库,这些工具库可以极大的提升我们的开发效率,@appolo/utils 就是一款非常优秀的工具库,它包含了很多实用的函数,可以帮助我们快速的完成一些常...

    4 年前
  • npm 包 appolo-cache 使用教程

    appolo-cache 是一个简单易用的缓存管理工具,可以轻松地在你的前端应用中使用。本文将为你介绍 appolo-cache 的使用方法,包括安装、配置、API 等方面。

    4 年前
  • npm 包 @appolo/helpers 使用教程

    前言 在前端开发中,npm 是一个不可忽略的工具,它为我们提供了无数实用的 JavaScript 包来完成我们的开发任务。本文主要介绍 @appolo/helpers 这个工具包的使用,它是一个为 N...

    4 年前
  • npm 包 appolo-engine 使用教程

    在现代的前端开发中,很多网站和应用都使用了 React、Angular 和 Vue 等框架。这些框架提供了很多的功能和工具,但是我们还需要一些额外的工具,来帮助我们构建更好的应用。

    4 年前
  • npm 包 tracium 使用教程

    前言 tracium 是一个基于 Chrome DevTools 的性能分析工具。它可以为您的页面生成一份资源使用情况的报告,内容详细而全面。本文将为您详细介绍如何使用 tracium。

    4 年前
  • npm 包 estimo 使用教程

    前言 在前端开发中,我们会使用一些第三方库或框架来提高开发效率和代码质量,但是这些库或框架背后的实现机制我们并不一定清楚。而使用 estimo 可以让我们了解代码性能方面的一些细节,更好地优化我们的代...

    4 年前
  • npm 包 @size-limit/time 使用教程

    什么是 @size-limit/time? @size-limit/time 是一个 npm 包,可以用于计算 JavaScript 代码运行时间。可以在前端测量整个页面或者用户交互的一部分的性能,也...

    4 年前
  • npm 包 import-global 使用教程

    在前端开发中,我们常常需要使用一些第三方的工具包或者库来帮助我们快速地完成开发任务。而 npm 是 JavaScript 开发中使用最广泛的一个依赖包管理器,能够方便地帮助我们查找、安装和使用各种 J...

    4 年前
  • npm 包 @alib/build-scripts 使用教程

    简介 @alib/build-scripts 是一个构建工具集,包含多个插件,可以帮助前端开发者快速构建前端项目。@alib/build-scripts 已经在阿里巴巴内部广泛使用,在性能、体验等方面...

    4 年前
  • npm 包 build-plugin-ice-config 使用教程

    在前端开发中,我们经常会使用 build 工具来编译和打包我们的代码,因此很多开发者都能够熟练地使用一系列的 build 工具和插件。在这篇文章中,我将介绍如何使用 npm 包 build-plugi...

    4 年前
  • npm包 build-plugin-ice-core 使用教程

    介绍 build-plugin-ice-core 是一个用于修改 buildConfig 的 ice-scripts 插件。通过这个插件,你可以自定义冰体系项目的打包配置,从而满足你的项目需求。

    4 年前
  • npm 包 @antv/hierarchy 使用教程

    在前端开发中,数据可视化是一个十分重要的领域,而 @antv/hierarchy 是一个非常棒的 npm 包,可以帮助我们实现树形数据的可视化。本文将详细介绍该 npm 包的使用方法和具体示例,并希望...

    4 年前
  • npm 包 @alifd/babel-preset-next 使用教程

    什么是 @alifd/babel-preset-next @alifd/babel-preset-next 是阿里前端团队 Ant Design 开发的用于转译 JavaScript 代码的 Babe...

    4 年前
  • 前端技术文章:npm 包 build-plugin-ice-helpers 使用教程

    简介 在前端开发中,构建工具是非常必要的,可以帮助我们自动完成编译、优化、部署等任务。而今天要介绍的 npm 包 build-plugin-ice-helpers 就可以帮助我们简化开发过程中的一些操...

    4 年前
  • npm 包 @antv/util 使用教程

    本文介绍了如何使用npm 包 @antv/util,帮助前端开发人员更好的快速开发和定制自己的交互数据可视化应用。 简介 @antv/util 是一个 AntV 数据可视化库的工具集,提供了许多有用的...

    4 年前

相关推荐

    暂无文章