# Drawer 抽屉 V1.1.0+

概述

Drawer 抽屉,抽屉式导航,用于展示侧滑菜单,侧滑导航。

# 支持平台

目前开发小程序与H5推荐使用 FirstUI nvue版本 (opens new window)

安卓系统版本 安卓uni-app 安卓uniapp-x iOS系统版本 iOS uniapp iOS uniapp-x 小程序 H5/Web
5.0 × 9.0 × × ×

# 引入

以下介绍两种常用的引入方式。
第一种:在页面中引用、注册
import fuiDrawer from "@/components/firstui/fui-drawer/fui-drawer.uvue"
export default {
	components:{
		fuiDrawer
	}
}
1
2
3
4
5
6
第二种:easycom组件规范
传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。easycom将其精简为一步。

First UI easycom配置请查看 快速上手

如果不了解easycom,可先查看 官网文档 (opens new window)

# 代码演示

部分示例演示,完整使用请参考示例程序以及文档API。
基础使用

通过 visible 属性控制是否显示抽屉。

当内容较多需要滚动时,可在组件内部使用 scroll-view 来达到内容滚动效果。

<fui-button type="gray" btn-size="medium" text="从右往左开" :bold="true" margin="24rpx"
	@click="showDrawer"></fui-button>
<fui-drawer v-model:visible="visible">
	<scroll-view :scroll-y="true" class="fui-scroll__view">
		<view>
			<fui-list-cell :arrow="true" v-for="(item,index) in itemList" :key="index">
				<text class="fui-text">item{{item}}</text>
			</fui-list-cell>
		</view>
	</scroll-view>
</fui-drawer>
1
2
3
4
5
6
7
8
9
10
11
export default {
	data() {
		return {
			visible: false,
			itemList: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
		}
	},
	methods: {
		showDrawer() {
			this.visible = true
		}
	}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
.fui-scroll__view {
	width: 520rpx;
	flex: 1;
	overflow: hidden;
}
1
2
3
4
5
从左往右开

通过 visible 属性控制是否显示抽屉,direction 属性控制抽屉打开方向,maskClosable 属性设置是否可点击遮罩关闭抽屉(值为true时点击后回调事件为@close)。

当内容较多需要滚动时,可在组件内部使用 scroll-view 来达到内容滚动效果。

<fui-button type="gray" btn-size="medium" text="从左往右开" :bold="true" @click="showDrawer">
</fui-button>
<fui-drawer :visible="visible2" direction="left" :radius="24" :maskClosable="false">
	<view class="fui-scroll__view">
		<text class="fui-title">左侧菜单栏</text>
		<scroll-view :scroll-y="true" style="height: 720rpx;">
			<view>
				<fui-list-cell v-for="(item,index) in itemList" :key="index">
					<text class="fui-text">item{{item}}</text>
				</fui-list-cell>
			</view>
		</scroll-view>
		<view class="fui-btn__box">
			<fui-button type="warning" btn-size="medium" text="关闭菜单栏" :bold="true" @click="closeDrawer">
			</fui-button>
		</view>
	</view>
</fui-drawer>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
export default {
	data() {
		return {
			visible2: false,
			itemList: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
		}
	},
	methods: {
		showDrawer() {
			this.visible2 = true
		},
		closeDrawer() {
			this.visible2 = false
		}
	}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.fui-scroll__view {
	width: 520rpx;
	flex: 1;
	overflow: hidden;
}

.fui-title {
	padding: 64rpx 32rpx 32rpx;
	box-sizing: border-box;
	font-weight: bold;
}

.fui-btn__box {
	padding: 40rpx 0;
	display: flex;
	flex-direction: row;
	justify-content: center;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Slots

插槽名称 说明
default 自定义显示内容

# Props

属性名 类型 说明 默认值 平台差异说明
visible Boolean 是否显示抽屉 false -
direction String 抽屉打开方向,可选值:left,right right -
background String 抽屉背景颜色 #fff -
zIndex Number 抽屉z-index值 996 -
maskClosable Boolean 点击遮罩 是否可关闭 true -
maskBackground String 遮罩背景色 rgba(0,0,0,.6) -
radius Number 外层容器圆角值,左侧打开时为右侧圆角,右侧打开时为左侧圆角 0 -

# Events

事件名 类型 说明 回调参数
@close () => void 点击遮罩层(maskClosable=true)时触发 -
@update:visible (event: boolean) => void 点击遮罩层(maskClosable=true)时触发,用于双向绑定 boolean:关闭抽屉

示例预览

# 示例代码地址

FirstUIDrawer 抽屉
Last Updated: 1/29/2024, 6:27:37 PM