npm 包 @beisen-platform/dropdown-tree 使用教程

介绍

在前端开发中,下拉树控件是经常使用的控件之一。@beisen-platform/dropdown-tree 是一种基于 React 的开源下拉树控件,提供了非常便利的功能,能够实现多选、异步加载、搜索等特性。

本文章将带您深入了解 npm 包 @beisen-platform/dropdown-tree 如何使用,包含详细的教程、示例代码,以及指导意义。

安装

在您的项目目录下,使用如下命令安装 @beisen-platform/dropdown-tree:

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

使用

下面是一个简单的示例,让您快速了解如何使用 @beisen-platform/dropdown-tree:

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

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

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

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

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

------ ------- ----
  • data:下拉树的数据源
  • selectedIds:当前选中的节点 id 列表,可以是空数组或者未定义。如果要在初始化时选中一些节点,可以把它们的 id 填入这个数组。
  • onSelectedIdsChange:当选中的节点列表发生变化时,发生的回调函数。该函数接受一个参数,即新的选中的节点列表。

在以上示例中,当选中的节点列表发生变化时,setSelectedIds 函数会被调用,属性的值会被更新。同时,下拉树组件也会自动更新选中状态。

属性

在 @beisen-platform/dropdown-tree 中,还可以通过传入各种属性来实现更多功能。以下是所有属性的详细介绍:

data

用于指定下拉树的数据源。该属性必须包含该树的所有节点(包括子节点),同时也需要指定每个节点的 id、label、children。

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

如果某个节点不包含子节点,可以只设置 idlabel

selectedIds

用于指定当前选中的节点 id 列表,接受一个数组。

onSelectedIdsChange

在选中的节点列表发生变化时触发的回调函数,接受一个参数:新的选中的节点列表。该函数可以用于更细粒度的逻辑,例如在选中一个节点时自动选中它的所有子节点。

labelProp

用于指定每个节点上显示的文本的属性名。

valueProp

用于指定每个节点上保存的值的属性名。

childrenProp

用于指定包含子节点的属性名。

parentIdProp

用于指定包含父节点 id 的属性名。

disabledIds

用于指定不可操作的节点 id 列表,接受一个值为数组。被指定的节点将无法被选中或展开。

defaultExpandAll

用于指定节点是否默认展开。当值为 true 时,节点将默认全部展开。反之,节点默认全部折叠。默认为 false。

indent

用于指定节点之间的缩进量。默认为 24。

selectable

用于启用或禁用节点的选择操作。当值为 false 时,节点将处于只读状态。默认为 true。

multiple

用于启用或禁用多选操作。当值为 true 时,用户可以在选中多个节点。反之,用户将只能选中单个节点。默认为 false。

async

用于开启异步加载数据的能力。当值为 true 时,节点在被展开时将向服务器异步加载内容。默认为 false。

asyncDataSource

用于指定异步加载数据的来源。具体使用详见下一节。

showSearch

用于控制是否展示搜索框。默认为 false。

异步加载数据

使用 @beisen-platform/dropdown-tree 开发者可以非常方便地实现异步加载数据。只需要填写 asyncDataSource 属性和 onAsyncLoad 属性即可。

以下示例是与上面的示例相比,添加了异步加载的功能。在选中某个节点时,被选中的节点的所有子节点将从服务器获取并展示。

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

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

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

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

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

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

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

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

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

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

在以上示例中,async 属性设置为 true。当展开节点时,若该节点的 async 属性也设置为 true,则该节点将从服务器异步获取数据。

同时,asyncDataSource 属性指定了异步加载的数据来源,这里的 getAsyncDataSource 函数用于从服务器获取数据。该函数返回一个 Promise 对象。

onAsyncLoad 回调函数中,异步加载的内容会被添加到节点的 children 属性中。但是要注意,当新添加的子节点也需要异步加载时,也需要使用 onAsyncLoad 函数并返回 Promise。

结论

在本文中,我们详细的介绍了 npm 包 @beisen-platform/dropdown-tree 使用教程,包括了安装、使用方法、属性等方面的讲解,以及涉及到异步加载数据怎么实现。

前端开发中,下拉树控件是非常经常使用的一个组件,@beisen-platform/dropdown-tree 提供了非常便利的功能,能够实现多选、异步加载、搜索等特性,具有非常高的实用性和扩展性。相信在实际的前端开发中,掌握 @beisen-platform/dropdown-tree 使用方法将是非常有价值的。

完整示例代码:https://codesandbox.io/s/beisen-platformdropdown-tree-demo-ry620

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


猜你喜欢

  • npm 包 korean-school 使用教程

    简介 Korean-school 是一个 npm 包,它提供了一些工具函数和组件,帮助开发者更轻松地处理和显示韩语。该包提供了以下几个主要功能: 韩文转换为罗马字母 确认一个单词或短语是否为韩文 显...

    4 年前
  • npm 包 ls-react-native-color-extracta 使用教程

    在前端开发中,我们经常需要处理颜色相关的问题。ls-react-native-color-extracta 是一个 npm 包,可以帮助我们方便地提取出 React Native 应用中所使用的颜色,...

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

    在前端开发中,我们经常需要控制代码的执行顺序,比如需要先请求数据再渲染页面等。传统的做法是使用回调函数或 Promise,但这种写法容易导致回调地狱或代码冗长。而 npm 包 step-engine ...

    4 年前
  • npm 包 react-native-contacts-permissions 使用教程

    在使用 React Native 开发中,需要访问设备通讯录时,我们需要使用到 react-native-contacts-permissions 这个 npm 包。

    4 年前
  • npm 包 mui-segmented-control 使用教程

    什么是 mui-segmented-control? mui-segmented-control 是基于 MUI(Material Design UI)框架开发的一个适用于移动端的选项卡插件。

    4 年前
  • npm 包 eleventy-xml-plugin 使用教程

    什么是 eleventy-xml-plugin eleventy-xml-plugin 是一个针对 eleventy 静态网站生成器的 npm 包,它可以将你的网站内容转化为 XML 格式,在 SEO...

    4 年前
  • npm 包 i-do-config 使用教程

    什么是 i-do-config? i-do-config 是一个用于管理配置文件的 npm 包,可以帮助前端开发者简化项目配置的过程。使用 i-do-config,你可以轻松创建和管理你的项目配置,而...

    4 年前
  • npm 包 idoconfig-provider-envvar 使用教程

    在前端开发中,项目中往往有一些需要动态配置的变量,这些变量比如 API 地址、cookie 域名等,我们需要在不同环境中使用不同的配置。idoconfig-provider-envvar 包提供了一种...

    4 年前
  • npm 包 dingtalk-alarm 使用教程

    介绍 dingtalk-alarm 是一款基于 Node.js 的 npm 包,可以让你在 JavaScript 项目中方便地使用钉钉机器人发送告警消息,支持普通文本、Markdown 消息以及链接、...

    4 年前
  • npm 包 mongoose-plugin-ngram-text-search 使用教程

    在使用 MongoDB 数据库的过程中,很多情况下需要进行文本搜索的工作。而且,仅仅使用 MongoDB 自带的文本搜索功能可能无法满足所有的需求。因此,开发了同步查询的 mongoose-plugi...

    4 年前
  • npm 包 idoconfig-provider-folder 使用教程

    在前端开发中,我们经常要使用一些配置文件来管理项目中的各种选项、权限等信息。如果你正在寻找一种方便、可扩展、易于维护的配置文件管理方式,那么 idoconfig-provider-folder 就是一...

    4 年前
  • NPM包react-text-media-editor使用教程

    简介 react-text-media-editor是一个用于React开发的富文本编辑器框架。它允许在编辑器中以多种媒体格式(文本、图片、视频、音频等)编辑内容,并具有实时预览的功能。

    4 年前
  • npm 包 stfalcon-vue-di 使用教程

    简介 在前端开发中,我们经常需要引入各种第三方库来辅助我们编写代码。其中,依赖注入是一个非常常见的设计模式。stfalcon-vue-di 是一个基于 Vue.js 的依赖注入库,它可以帮助我们更好地...

    4 年前
  • npm 包 update-notice 使用教程

    在前端开发中,经常会使用一些第三方的 npm 包来增强代码的功能。然而,这些第三方包会不断进行更新升级,导致我们的应用程序可能会出现向后不兼容的问题。这时候,一个好用的 npm 包:update-no...

    4 年前
  • npm 包 cordova-plugin-freshchat-vmatskiv-fork 使用教程

    在移动端应用开发中,实现客户端与客服的实时聊天功能是非常常见的需求。而 Freshchat 作为一个跨平台的聊天解决方案,可以轻松完成这个需求。 cordova-plugin-freshchat-vm...

    4 年前
  • npm 包 qfh-cli 使用教程

    简介 qfh-cli 是一个基于 Node.js 的命令行工具,用于快速生成前端项目。本文将介绍如何安装和使用 qfh-cli。 安装 在安装 qfh-cli 之前,需要先安装 Node.js 和 n...

    4 年前
  • npm 包 pm2r 使用教程

    简介 在前端项目开发中,我们通常需要运行多个进程来处理不同的任务,例如服务器端渲染、异步任务、定时任务等等。然而,手动管理这些进程并不是一件容易的事情,特别是在生产环境中需要保证进程的稳定性和高可用性...

    4 年前
  • npm 包 @willishq/vform-ts 使用教程

    前言 在前端开发中,表单验证是非常重要的一部分。在维护一个大型的表单系统时,表单验证往往会占用很大的时间和精力。为了解决这个问题,我们可以使用 npm 包 @willishq/vform-ts,它是一...

    4 年前
  • npm 包 @diginex/libra-core 使用教程

    简介 @diginex/libra-core 是一个基于区块链的数字货币支付解决方案。它提供了一个易于使用的界面,使得开发者能够轻松地处理区块链钱包和交易,以及进行数字货币支付。

    4 年前
  • npm 包 number-pi 使用教程

    在前端开发中,我们经常需要进行数字计算和运算。而对于圆周率的计算,可以使用 npm 包 number-pi,这个包可以帮助我们快速进行圆周率的计算。 安装 安装 number-pi,可以使用 npm ...

    4 年前

相关推荐

    暂无文章