npm 包 @spartez/vue-slicksort 使用教程

阅读时长 10 分钟读完

介绍

@spartez/vue-slicksort 是一个针对 Vue.js 的拖拽排序组件库。它具有以下特点:

  • 可以水平和垂直方向进行拖拽排序;
  • 可以限制拖拽的范围;
  • 可以自定义拖拽的样式。

安装

在使用 @spartez/vue-slicksort 前,你需要先安装它。你可以通过 npm 安装它,执行以下命令:

使用

在使用 @spartez/vue-slicksort 时,你需要先引入该组件,并在 Vue 实例中注册:

接着,在你的模板中使用 slick-sort 标签,示例如下:

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

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

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

在上面的示例中,我们使用了 slick-sort 标签,并将列表数据传递给了 list 属性,同时监听了 end 事件,并在回调中将排序后的列表数据更新到了组件的 list 属性中。

属性

在使用 slick-sort 标签时,你可以通过以下属性来自定义拖拽排序的样式和行为。

list

  • 类型:Array

列表数据。

item-class

  • 类型:String|null
  • 默认值:null

列表项的 CSS 类名,可用于覆盖默认样式。

item-key

  • 类型:String
  • 默认值:id

用于唯一标识每个列表项的属性名。

transition-duration

  • 类型:Number
  • 默认值:300

动画过渡的时间(毫秒)。

lock-axis

  • 类型:String|null
  • 默认值:null

锁定拖拽的轴向,可选值为 x(水平方向)或 y(垂直方向)。

max-scroll-speed

  • 类型:Number
  • 默认值:10

滚动容器的最大滚动速度。

no-sort

  • 类型:Boolean
  • 默认值:false

是否禁止排序。

no-drag

  • 类型:Boolean
  • 默认值:false

是否禁止拖拽。

disabled

  • 类型:Boolean
  • 默认值:false

是否禁用拖拽排序。

handle

  • 类型:String|null
  • 默认值:null

拖拽操作的句柄 CSS 类名,在该句柄上才可以进行拖拽操作。

use-window-as-scroll-container

  • 类型:Boolean
  • 默认值:false

是否将 window 对象作为容器,开启后可以实现窗口滚动。

container-class

  • 类型:String|null
  • 默认值:null

排序容器的 CSS 类名。

事件

在使用 slick-sort 标签时,你可以通过监听以下事件来响应拖拽排序的行为。

start

当拖拽操作开始时触发,可以在这里进行一些初始化操作。

move

当拖拽操作进行中时触发,可以在这里对拖动中的元素进行位置计算等操作。

end

当拖拽操作结束时触发,将排序后的列表数据作为参数传递给回调函数。

cancel

当拖拽操作被取消时触发,比如用户按下了 ESC 键或拖拽到了一个不允许的位置。

clone

当拖拽操作开始时,用于生成拖拽元素的克隆节点。

示例

以下是一个完整的示例代码,你可以复制粘贴到你的项目中进行使用。

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

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

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

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

在上面的示例中,我们通过 isSortable 属性来动态控制 “开启拖拽排序” 的选项,同时通过 isMobile 属性来模拟移动端的样式。我们还监听了 startmoveendcancelclone 事件,对排序过程进行了一些输出,便于调试。

你可以通过以下步骤启动示例项目:

  1. 克隆示例项目到本地:git clone https://github.com/vuejs/vue-slicksort.git
  2. 安装依赖:npm install
  3. 启动项目:npm run dev
  4. 在浏览器访问 http://localhost:8080/ 即可查看示例。

总结

@spartez/vue-slicksort 是一个非常方便且易用的拖拽排序组件库。本文介绍了如何在 Vue.js 中使用该库,包括安装、使用、属性和事件等方面的内容。当你需要对列表进行拖拽排序时,@spartez/vue-slicksort 绝对是一个值得推荐的组件库。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067350890c4f7277583985

纠错
反馈