您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Vant SwipeCell 滑动单元格

Vant SwipeCell 滑动单元格是提供可以在两侧加入的组件。

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

Vue.use(SwipeCell);

SwipeCell组件提供了left和right两个插槽,用于定义两侧滑动区域的

<van-swipe-cell>
  <template slot="left">
    <van-button square type="primary" text="选择" />
  </template>
  <van-cell :border="false" title="单元格" value="" />
  <template slot="right">
    <van-button square type="danger" text="" />
    <van-button square type="primary" text="收藏"/>
  </template>
</van-swipe-cell>

SwipeCell可以嵌套任意,比如嵌套商品卡片

<van-swipe-cell>
  <van-card
    num="2"
    price="2.00"
    desc="描述信息"
    title="商品"
    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>

通过传入before-close回调,可以两侧滑动时的行为

<van-swipe-cell :before-close="beforeClose">
  <template slot="left">
    <van-button square type="primary" text="选择" />
  </template>
  <van-cell :border="false" title="单元格" value="" />
  <template slot="right">
    <van-button square type="danger" text="" />
  </template>
</van-swipe-cell>
export default {
  methods: {
    // position 为时点击的位置
    // instance 为对应的 SwipeCell 实例
    beforeClose({ position, instance }) {
      switch (position) {
        case 'left':
        case 'cell':
        case 'outside':
          instance.close();
          break;
        case 'right':
          Dialog.confirm({
            message: '确定吗?'
          }).then(() => {
            instance.close();
          });
          break;
      }
    }
  }
}

API

beforeClose 的第参数为对象,对象中包含以下:

通过 ref 可以到 SwipeCell 实例并实例,详见 

常见问题

参见。

演示


联系我
置顶