npm 包 @procensus/react-sortable-hoc 使用教程

简介

React Sortable HOC 是一个 React 高阶组件(HOC),它使得拖拽排序非常简单和灵活。它允许您轻松地创建可排序的 React 列表,只需添加几个 props 就可以了。

在本教程中,我们将讲解如何使用 @procensus/react-sortable-hoc 包来创建一个 React 组件,实现列表拖拽排序的功能。该 npm 包依赖于 React,因此您需要确保 React 已经安装。

安装

使用 npm 命令安装 @procensus/react-sortable-hoc。

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

使用

将 SortableContainer、SortableElement 和 SortableHandle 导入您的React组件中,对需要进行拖动排序的元素进行封装即可。其中,SortableContainer 容器包含需要进行排序的所有项, SortableElement 是包含单个元素的可排序列表。

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

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

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

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

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

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

在上面的代码中,我们封装了 SortableItemSortableList 组件,以实现对列表元素的排序。然后,我们在 SortableComponent 组件中使用 SortableList 组件来展示需要进行拖动排序的所有项。

配置

您可以通过传递不同的 props 来对 SortableContainer 和 SortableElement 进行配置。

SortableContainer

  • axis {string}: 接受 'x' 或 'y'。默认值为 'y'。指定修复给定轴的滚动。

  • distance {number}: 默认值为 0。定义当鼠标点击时需要偏移的距离,以防止不小心拖放。

  • getContainer {function}: 这返回一个 HTML 节点元素,以将拖动元素定位到不同的容器中。

  • helperClass {string}: 指定拖动元素的 css 类名。

  • helperContainer {node} | {function}: 这返回一个 HTML 节点元素,以包装拖动元素的实际 DOM(Document Object Model)结构。

  • hideSortableGhost {bool}: 指定是否隐藏拖动元素的幽灵,并代替原始元素。

  • keyCodes {Object}: 默认设置为 {left: 37, right: 39, up: 38, down: 40}。可以手动重新定义所需的键码。

  • lockAxis {string}: 接受 'x' 或 'y'。默认值为 null。锁定特定轴的拖动,禁用其他轴。

  • lockOffset {string | array}: 创造一个边界,代表容器显式开头的像素。

  • lockToContainerEdges {bool}: 将轴锁定为容器的边缘。

  • transitionDuration {number}: 改变容器中属性的动画持续时间。

SortableElement

  • index {number}: 必要的数值类型 确定此元素的位置。

  • disabled {bool}: 禁止对该组件进行排序。

  • collection {any}: 确定元素所属的集合。每个集合都可以单独排序。

总结

在本文中,我们了解了如何使用 @procensus/react-sortable-hoc 包来创建一个 React 组件,在不使用太多代码的情况下,实现了列表拖动排序的功能,这是一个非常有用的技术实现。快来试试吧!

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


猜你喜欢

  • npm 包 prism-ejs-language 使用教程

    前言 在前端开发中,我们经常需要使用到语法高亮工具来为我们的文本、代码块等内容添加色彩,以便于用户阅读、理解和区分。而在使用语法高亮工具时,我们常常需要涉及到各种语言的支持,比如 JavaScript...

    3 年前
  • npm 包 ws-template-default-optional-deps 使用教程

    在前端开发中,通常要使用各种第三方库和框架来辅助开发。而使用 npm 包管理器可以使我们更加方便地安装、更新和维护这些第三方库和框架。在本文中,我们将介绍一个名为 ws-template-defaul...

    3 年前
  • npm 包 range-map 使用教程

    什么是 range-map? range-map 是一个可以帮助前端工程师将数字范围映射到另一个数字范围的 npm 包。它可以很方便地将一个数值或一组数值从一个范围映射到另一个范围,并返回相应的结果。

    3 年前
  • npm 包 remap-number 使用教程

    简介 remap-number 是一个 JavaScript 包,它提供了一种简单的方式来重新映射一个数值。 在前端开发中,我们经常需要将一个数值从一个范围映射到另一个范围。

    3 年前
  • npm 包 devtool-meteor 使用教程

    简介 devtool-meteor 是一个开源的 npm 包,它是为了简化基于 Meteor 开发的项目的调试而创建的一个工具。在大型项目中, Meteor 的调试和调试工具以及相关的文档并不是那么的...

    3 年前
  • npm 包 8fold-simplemde 使用教程

    介绍 8fold-simplemde 是一个开源的、基于 SimpleMDE 的 npm 包,它为 SimpleMDE 提供了额外的功能和组件,使得前端工程师可以更加高效地构建富文本编辑器。

    3 年前
  • npm 包 mip-processor-md5 使用教程

    npm 包 mip-processor-md5 是一个用于被MIP组件引用的 markdown 文件转换处理器。这个处理器可以在被MIP组件引用的 markdown 文件中,将图片链接转换为md5值命...

    3 年前
  • npm 包 vue-flag-icon 使用教程

    在前端开发中,图标是一个非常重要的元素,它能提升页面的美观性和易用性。vue-flag-icon 是一个基于 Vue.js 的图标组件库,它提供了国家、地区和组织的标识图标库,比如国旗图标、地区图标等...

    3 年前
  • npm 包 async-calls-tracker 使用教程

    简介 在前端开发中,我们经常需要使用异步操作来执行后台调用或操作 DOM 等任务。但是,当我们需要同时处理多个异步操作时,就会遇到复杂的控制流问题。async-calls-tracker 是一个帮助我...

    3 年前
  • npm 包 cordova-plugin-tesseract-ocr 使用教程

    前言 在现今人工智能快速发展的时代,OCR 技术已经逐渐成为自动化处理数据的利器。但是在前端开发中,如何将 OCR 技术应用到移动端开发中?cordova-plugin-tesseract-ocr 就...

    3 年前
  • npm 包 tokyo-input 使用教程

    前言 在前端开发中,我们经常会遇到输入框格式化等需求,而 tokyo-input 就是一个很好的解决方案。本文将详细介绍如何使用 tokyo-input,帮助读者快速实现输入框格式化功能。

    3 年前
  • npm 包 js-xlsx 使用教程

    简介 在前端开发中,Excel 文件的读取和写入是必不可少的。而其中一个优秀的 npm 包——js-xlsx,可以快速地进行 Excel 文件的读取和写入,帮助开发者将数据从 Excel 中导入到应用...

    3 年前
  • npm 包 cordova-plugin-ocr-sdk 使用教程

    介绍 cordova-plugin-ocr-sdk 是一款基于 Cordova 的 OCR 开发插件,在前端领域有着广泛应用。它能够通过调用移动设备的摄像头进行图片识别,将识别的文字数据返回给开发者,...

    3 年前
  • npm 包 module-export 使用教程

    npm (Node Package Manager) 是一个社区驱动的现代化的软件包管理器,可以方便地安装、更新、卸载 Node.js 模块。module-export 是一种将组件导出为模块的方式,...

    3 年前
  • npm 包 mongo-connect-sync 使用教程

    简介 本文将介绍一个 npm 包:mongo-connect-sync,它提供了一个同步操作 MongoDB 数据库的方法,使得在 Node.js 应用中使用 MongoDB 更加轻松。

    3 年前
  • npm 包 @nulldivision/doctyped 使用教程

    前言 在前端开发中,我们通常需要处理不同的数据类型,如字符串、数字、布尔值等。但在使用这些数据时,我们往往需要明确它们的具体类型以便于正确处理。尤其是在处理表单数据等复杂数据类型时,我们需要对它们进行...

    3 年前
  • npm 包 express-autoload-route 使用教程

    在前端开发中,我们需要经常使用到 Node.js 的 express 框架来搭建服务器。而 express-autoload-route 是一款可以自动加载路由和控制器的 npm 包,可以帮助我们更快...

    3 年前
  • npm 包 my-npm-profile 使用教程

    在开发前端项目的过程中,我们通常需要用到很多第三方的库和工具来提高我们的效率和减少工作量。而 npm 作为目前最受欢迎的 JavaScript 包管理工具,成为了前端开发者们必备的工具之一。

    3 年前
  • npm 包 jscomet.core 使用教程

    jscomet.core 是一个用于前端开发的 npm 包,提供了一些优秀的工具和 API,可以使开发更加高效和便捷。本文将提供一个详细的教程来让您了解如何使用 jscomet.core 并发挥它的作...

    3 年前
  • npm 包 terminus-ui 使用教程

    NPM 是目前最流行的 JavaScript 包管理器,它可以让你分享、发现和使用代码包。在前端开发中,很多项目会依赖于其他的包库。如今,绝大部分的前端项目都用 NPM 来管理依赖。

    3 年前

相关推荐

    暂无文章