Vant SwipeCell 滑動(dòng)單元格

2022-05-31 13:34 更新

引入

import Vue from 'vue';
import { SwipeCell } from 'vant';

Vue.use(SwipeCell);

代碼演示

基礎(chǔ)用法

SwipeCell組件提供了left和right兩個(gè)插槽,用于定義兩側(cè)滑動(dòng)區(qū)域的內(nèi)容

<van-swipe-cell>
  <template slot="left">
    <van-button square type="primary" text="選擇" />
  </template>
  <van-cell :border="false" title="單元格" value="內(nèi)容" />
  <template slot="right">
    <van-button square type="danger" text="刪除" />
    <van-button square type="primary" text="收藏"/>
  </template>
</van-swipe-cell>

自定義內(nèi)容

SwipeCell內(nèi)容可以嵌套任意內(nèi)容,比如嵌套一個(gè)商品卡片

<van-swipe-cell>
  <van-card
    num="2"
    price="2.00"
    desc="描述信息"
    title="商品標(biāo)題"
    class="goods-card"
    thumb="https://img.yzcdn.cn/vant/cat.jpeg"
  />
  <van-button
    slot="right"
    square
    text="刪除"
    type="danger"
    class="delete-button"
  />
</van-swipe-cell>

<style>
.goods-card {
  margin: 0;
  background-color: @white;
}

.delete-button {
  height: 100%;
}
</style>

異步關(guān)閉

通過(guò)傳入before-close回調(diào)函數(shù),可以自定義兩側(cè)滑動(dòng)內(nèi)容關(guān)閉時(shí)的行為

<van-swipe-cell :before-close="beforeClose">
  <template slot="left">
    <van-button square type="primary" text="選擇" />
  </template>
  <van-cell :border="false" title="單元格" value="內(nèi)容" />
  <template slot="right">
    <van-button square type="danger" text="刪除" />
  </template>
</van-swipe-cell>
export default {
  methods: {
    // position 為關(guān)閉時(shí)點(diǎn)擊的位置
    // instance 為對(duì)應(yīng)的 SwipeCell 實(shí)例
    beforeClose({ position, instance }) {
      switch (position) {
        case 'left':
        case 'cell':
        case 'outside':
          instance.close();
          break;
        case 'right':
          Dialog.confirm({
            message: '確定刪除嗎?'
          }).then(() => {
            instance.close();
          });
          break;
      }
    }
  }
}

API

Props

參數(shù)說(shuō)明類(lèi)型默認(rèn)值
name v2.0.4標(biāo)識(shí)符,可以在事件參數(shù)中獲取到number | string-
left-width指定左側(cè)滑動(dòng)區(qū)域?qū)挾?,單位?code>pxnumber | stringauto
right-width指定右側(cè)滑動(dòng)區(qū)域?qū)挾?,單位?code>pxnumber | stringauto
before-close v2.3.0關(guān)閉前的回調(diào)函數(shù)Function-
disabled是否禁用滑動(dòng)booleanfalse
stop-propagation v2.1.0是否阻止滑動(dòng)事件冒泡booleanfalse

Slots

名稱(chēng)說(shuō)明
default自定義顯示內(nèi)容
left左側(cè)滑動(dòng)內(nèi)容
right右側(cè)滑動(dòng)內(nèi)容

Events

事件名說(shuō)明回調(diào)參數(shù)
click點(diǎn)擊時(shí)觸發(fā)關(guān)閉時(shí)的點(diǎn)擊位置 (left right cell outside)
open打開(kāi)時(shí)觸發(fā){ position: 'left' | 'right' , name: string }
close關(guān)閉時(shí)觸發(fā){ position: string , name: string }

beforeClose 參數(shù)

beforeClose 的第一個(gè)參數(shù)為對(duì)象,對(duì)象中包含以下屬性:

參數(shù)名說(shuō)明類(lèi)型
name標(biāo)識(shí)符string
position關(guān)閉時(shí)的點(diǎn)擊位置 (left right cell outside)string
instanceSwipeCell 實(shí)例,用于調(diào)用實(shí)例方法SwipeCell

方法

通過(guò) ref 可以獲取到 SwipeCell 實(shí)例并調(diào)用實(shí)例方法,詳見(jiàn) 組件實(shí)例方法

方法名說(shuō)明參數(shù)返回值
open打開(kāi)單元格側(cè)邊欄position: left | right-
close收起單元格側(cè)邊欄--

常見(jiàn)問(wèn)題

在桌面端無(wú)法操作組件?

參見(jiàn)在桌面端使用。


實(shí)例演示

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)