npm 包 vue-drag-sort-tree 使用教程

介绍

vue-drag-sort-tree 是一个 Vue.js 的可拖拽树形组件。通过使用该组件,用户可以方便地对树形结构进行拖拽排序。

安装

要安装该 npm 包,请在控制台中运行以下命令:

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

使用

在使用 vue-drag-sort-tree 之前,你需要导入它,并将其注册到 Vue 中。可以使用下面的示例代码:

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

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

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

API 文档

Props

Name Type Default Value Description
tree-data Array 接受一个节点数据的数组,作为树形结构的数据源
show-checkbox Boolean false 是否在每个节点前面显示复选框
check-on-click Boolean true 点击节点时是否触发复选框的点击事件
drag-icon-class String 指定拖拽时节点的图标的样式类名
drop-icon-class String 指定拖拽时允许放置的区域的图标的样式类名
collapse-icon String - 指定折叠图标的样式(接受一个 SVG path 字符串)
expand-icon String - 指定展开图标的样式(接受一个 SVG path 字符串)
check-icon String - 指定选中节点时复选框的样式(接受一个 SVG path 字符串)
uncheck-icon String - 指定未选中节点时复选框的样式(接受一个 SVG path 字符串)
disabled-icon String - 指定被禁用节点时复选框的样式(接受一个 SVG path 字符串)
allow-drop Function 一个函数,接受两个参数:(draggingNodeData, dropParentNodeData)用于控制是否允许拖拽节点放到指定容器
allow-drag Function 一个函数,接受一个参数:(draggingNodeData)用于控制是否允许拖拽指定节点
drop-target-level Number 设置允许放置到的目标节点的最大级别
drop-target-node Object 指定拖拽结束后节点作为目标节点的父节点,接受一个节点数据对象
auto-expand Boolean/String false 是否在拖拽时自动展开父级节点。如果值为 'always' ,则始终展开父级节点,值为 'hover' 则只在拖拽上方时展开
max-level Number 最大允许的节点层级
container-class String - 指定容器的 CSS 类名
custom-checkbox Boolean false 是否使用自定义复选框,接受一个渲染函数
check-all-child Boolean false 指定是否当选中某个父节点时,自动选中其下所有子节点
empty-text String '没有数据' 没有数据时,显示的文本
show-icon Boolean/String true 是否显示图标,或者是哪个位置显示图标('left'/'right')

事件

Name Description
node-checked-change 在节点的复选框状态改变时触发,传递两个参数:nodeData, checked
node-clicked 当点击节点时触发,传递一个参数:nodeData
node-collapse-change 当节点的折叠状态发生变化时触发,传递两个参数:nodeData, collapsed

示例代码

下面是一个示例代码:

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

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

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

该代码使用了 allowDragallowDrop 两个函数来控制哪些节点能够被拖拽,哪些容器能够接受拖拽节点。其中,节点的 id 是嵌套深度优先的形式。

结语

vue-drag-sort-tree 为前端工程师提供了一种非常方便和可定制的可拖拽树形组件解决方案。通过该组件,我们可以轻松地实现对树状结构的快速排序。欢迎大家在实际开发中进行尝试,发现其中更多优化空间。

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


猜你喜欢

  • npm 包 react-custom-scrollbars-scrollbar-width 使用教程

    简介 在前端开发中,经常需要使用滚动条来展现长文本或长列表。但是,不同的浏览器会有不同的滚动条宽度,这对于前端开发来说是很麻烦的。为了解决这个问题,React 社区开发了一个 npm 包叫做 reac...

    3 年前
  • 使用 react-native-webview-bridge-tww 来构建跨平台应用的完整解决方案

    前言:由于移动端、Web 前端、桌面端等多种平台的出现,导致了前端开发人员需要面对多个平台的开发需求,这就要求我们构建跨平台应用。本文将详细介绍如何使用 react-native-webview-br...

    3 年前
  • npm 包 textfield 使用教程

    textfield 是一个可以让用户输入文本的 UI 元素。npm 包 textfield 可以帮助前端开发者快速地实现文本框功能,减少重复开发和提高效率。在本文中,我们将详细介绍 npm 包 tex...

    3 年前
  • npm 包 enum-powerset 使用教程

    在前端开发中,经常会碰到需要处理多个元素的情况下,需要获取它们所有的可能组合方式。例如在某些商城网站中,用户可以同时筛选多个商品属性的不同选项,此时需要列举出所有可能的组合,以便从数据库中获取对应的商...

    3 年前
  • npm 包 generator-antd-m-react-webpack 使用教程

    在前端开发中,我们经常需要使用到一些工具包和框架来帮助我们简化开发流程、提高开发效率。其中,npm 包是一种非常实用的工具,可以方便地安装和使用。本文将介绍一个名为 generator-antd-m-...

    3 年前
  • npm 包 laurence 使用教程

    npm 包 laurence 是一个用于前端 web 开发的工具库,其目的是为了让 web 开发更加便捷、高效。laurence 包含多个常用的工具函数和组件,可以帮助开发者快速完成各种任务。

    3 年前
  • npm 包 react-native-snackbar-length 使用教程

    介绍 react-native-snackbar-length 是一个 React Native 组件,用于在应用中显示 Material Design 风格的 Snackbar。

    3 年前
  • npm 包 swagger-ux 使用教程

    本文将为大家介绍一款前端开发工具 - swagger-ux。swagger-ux 是一个基于 Swagger 规范的用户界面框架,能够帮助开发人员快速创建优雅的 API 文档和客户端,支持多种编程语言...

    3 年前
  • npm 包 cube-brick 使用教程

    介绍 cube-brick 是一个 React 组件库,提供了一些基础的 UI 组件,如 button、input、select、dialog 等,帮助我们快速构建 UI 界面。

    3 年前
  • npm 包 restimpy 使用教程

    在我们进行前端开发时,我们经常需要与后端数据进行交互,而在这个过程中常常会用到 RESTful API。在本文中,我们将介绍一个非常有用的 npm 包 restimpy,它可以让我们更加轻松地处理 R...

    3 年前
  • npm 包 @gerhobbelt/ebnf-parser 使用教程

    什么是 @gerhobbelt/ebnf-parser? @gerhobbelt/ebnf-parser 是一个可以解析 EBNF 语法的 JavaScript 库,它可以用于构建编译器和解析器。

    3 年前
  • npm 包 @gerhobbelt/jison-lex 使用教程

    在前端开发过程中,我们经常会使用到语法解析器来进行代码解析和分析。@gerhobbelt/jison-lex 是一款常用的语法分析器,它可以帮助我们对各种语言的代码进行分析和处理。

    3 年前
  • npm 包 @gerhobbelt/jison2json 使用教程

    简介 在前端开发中,有时需要对一些文本型数据进行解析和转换。npm 包 @gerhobbelt/jison2json 就是一款能够实现文本数据解析和转换的工具包。该工具能够将基于 Jison 的语法定...

    3 年前
  • npm 包 @gerhobbelt/json2jison 使用教程

    简介 在前端开发中,有时需要使用到语法解析和转换等相关工具。其中,@gerhobbelt/json2jison 是一个基于 JSON 形式描述的词法和语法分析器生成器,可以帮助开发者快速生成自己需要的...

    3 年前
  • npm 包 moon-sugar 使用教程

    简介 moon-sugar 是一款前端常用工具库,提供各种常用的工具函数,比如字符串处理、日期处理、数组过滤等等。它是一个轻量、易用、高效的npm包,可以帮助前端开发人员快速地完成简单的业务逻辑和代码...

    3 年前
  • npm 包 @gerhobbelt/lex-parser 使用教程

    什么是 @gerhobbelt/lex-parser @gerhobbelt/lex-parser 是一个 JavaScript 的词法分析(lexer/lexing)器,它可以处理包括正则表达式、字...

    3 年前
  • npm 包 jison-helpers-lib 使用教程

    在前端开发中,我们经常需要处理一些复杂的文本数据,例如解析 SQL 语句、分析 Markdown 等。这时候,我们可以利用一个叫做 jison 的工具来生成解析器。

    3 年前
  • npm 包 generator-wxui-react-webpack 使用教程

    简介 generator-wxui-react-webpack 是一个基于 Yeoman 的前端脚手架工具,用于快速构建 React + Webpack + 微信小程序 UI 库的项目。

    3 年前
  • npm 包 React Video Wrapper 使用教程

    介绍 React Video Wrapper 是一个 React 组件,可让开发者轻松嵌入视频播放器。它支持多种视频格式,包括 mp4, ogv和webm。 为什么选择 React Video Wra...

    3 年前
  • npm 包 react-native-simple-popover 使用教程

    简介 react-native-simple-popover 是一个 React Native 的弹出框组件。它可以用来展示信息、操作提示等。本文将详细介绍如何使用 react-native-simp...

    3 年前

相关推荐

    暂无文章