1.创建子组件

<template>
<a-drawer
:title="drawerInfo.customTitle"
:placement="placement"
:closable="drawerInfo.showCloseIcon"
:visible="drawerInfo.visible"
@close="onClose"
:width="drawerInfo.width"
:maskClosable="drawerInfo.clickmaskFlag"
>
<div clang="cont-all">
<slot></slot>
</div>
</a-drawer>
</template>
<script lang="ts">
import { defineComponent, reactive, watch } from 'vue'
export default defineComponent({
props: {
// 从那个方向打开
openlocal: {
type: String,
default: 'right',
},
// 宽度
width: {
type: String,
default: '461px',
},
// 标题
customTitle: {
type: String,
required: true,
},
// 是否展示抽屉
showMskFalg: {
type: Boolean,
default: false,
},
// 显示关闭图标
showCloseflag: {
type: Boolean,
default: true,
},
// 点击蒙层是否允许关闭
clickmaskFlag: {
type: Boolean,
default: true,
},
},
setup(props, { emit }) {
const drawerInfo = reactive({
placement: props.openlocal, //打开的方向
width: props.width, //宽度
customTitle: props.customTitle, //标题
visible: props.showMskFalg, //默认关闭
showCloseIcon: props.showCloseflag, //closable
clickmaskFlag: props.clickmaskFlag, // 点击蒙层是否允许关闭
})
// 点击遮罩层或右上角叉或取消按钮的回调
function onClose() {
emit('otherHander')
}
// 监听打开或者关闭
watch(props, ({ showMskFalg }) => {
drawerInfo.visible = showMskFalg
})
return {
drawerInfo,
onClose,
}
},
})
</script>

2封装时的注意点

showMskFalg这个参数是控制抽屉是否展开的一个变量
默认这个值是关闭的
由于这个值是有父级传递过来的
我们需要对这个值进行监听
于是便有了
监听打开或者关闭
watch(props, ({ showMskFalg }) => {
drawerInfo.visible = showMskFalg
})
他表示的是监听props中的showMskFalg这个值

3.使用组件

<a-button type="primary" @click="showDrawer">Open</a-button>
<drawer-com
openlocal="right"
@otherHander="otherHander"
:showCloseflag="comInfo.showCloseflag"
customTitle="新建目录"
:showMskFalg="comInfo.showMskFalg"
></drawer-com> let comInfo = reactive({
showMskFalg: false, //默认关闭
showCloseflag: true, //没有关闭图标
}) // 打开抽屉
function showDrawer() {
comInfo.showMskFalg = true
}
// 关闭抽屉
function otherHander() {
comInfo.showMskFalg = false
}

Ant Design Vue封装a-drawer的更多相关文章

  1. 基于Ant Design Vue封装一个表单控件

    开源代码 https://github.com/naturefwvue/nf-vue3-ant 有缺点本来是写在最后的,但是博文写的似乎有点太长了,估计大家没时间往下看,于是就把有缺点写在前面了,不喜 ...

  2. Vue 2.x折腾记 - (17) 基于Ant Design Vue 封装一个配置式的表单组件

    前言 写了个类似上篇搜索的封装,但是要考虑的东西更多. 具体业务比展示的代码要复杂,篇幅太长就不引入了. 效果图 2019-04-25 添加了下拉多选的渲染,并搜索默认过滤文本而非值 简化了渲染的子组 ...

  3. Ant Design Vue select下拉列表设置默认值

    在项目中需要为Ant Design Vue 的 select 组件设置一个默认值,如下图所示的状态下拉选择框,默认选择全部 代码如下: <a-select v-model="query ...

  4. Ant Design Vue Pro 项目实战-项目初始化(一)

    写在前面 时间真快,转眼又是新的一年.随着前后端技术的不断更新迭代,尤其是前端,在目前前后端分离开发模式这样的一个大环境下,交互性.兼容性等传统的开发模式已经显得有些吃力.之前一直用的是react,随 ...

  5. 使用ant design vue的日历组件,实现一个简单交易日与非交易日的切换

    使用ant design vue的日历组件,实现一个简单交易日与非交易日的切换 需求: 日历区分交易日.非交易日 可以切换面板查看整年交易日信息 可以在手动调整交易日.非交易日 演示实例 序--使用软 ...

  6. 使用npm安装 Ant Design Vue 时报错—ant-design-vue@latest(sha1-qsf / gCIFcRYxyGmOKgx7TmHf1z4 =)seems to be corrupted.

    安装 Ant Design Vue 时报错: npm install ant-design-vue --save ant-design-vue @ latest(sha1-qsf / gCIFcRYx ...

  7. Vue3学习(二)之集成Ant Design Vue

    一.集成Ant Design Vue npm install ant-design-vue@2.0.0-rc.3 --save 兼容性 Ant Design Vue 2.x 支持所有的现代浏览器. 如 ...

  8. Ant Design Vue项目解析-前言

    源码系列文章很长时间没有更新,一是在考虑文章用什么方式写质量会更高,用什么方式总结更易于扩展和总结知识点,加上工作.看书.健身占用的时间比较多所以也没时间去整理.最近在网上看到一篇文章感觉这种方式不错 ...

  9. 文档驱动 —— 表单组件(五):基于Ant Design Vue 的表单控件的demo,再也不需要写代码了。

    源码 https://github.com/naturefwvue/nf-vue3-ant 特点 只需要更改meta,既可以切换表单 可以统一修改样式,统一升级,以最小的代价,应对UI的升级.切换,应 ...

  10. 使用Vue-Cli搭建Ant Design Vue前端开发环境

    如果文章有帮助到你,还请点个赞或留下评论 搭建脚手架 环境准备 nodeJS vue-cli 如果没有安装点击此处查看安装方法 进入 vue ui 1.打开终端,输入命令 vue ui 2.选择项目存 ...

随机推荐

  1. 带你读顶会论文丨基于溯源图的APT攻击检测

    摘要:本次分享主要是作者对APT攻击部分顶会论文阅读的阶段性总结,将从四个方面开展. 本文分享自华为云社区<[论文阅读] (10)基于溯源图的APT攻击检测安全顶会总结>,作者:eastm ...

  2. 设备如何使用go sdk轻松连接华为云IoT平台?

    摘要:本文介绍使用huaweicloud-iot-device-sdk-go 连接华为云IoT平台,实现简单的华为云文档介绍的四个功能:设备连接鉴权.设备命令.设备消息和设备属性. 本文分享自华为云社 ...

  3. vue2升级vue3:Vue Router报错,directly inside <transition> or <keep-a

    vue3 报这个错误: vue-router.mjs:35 [Vue Router warn]: <router-view> can no longer be used directly ...

  4. iOS应用上架详细图文教程

    ​ App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都"死"在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上 ...

  5. IaC 存储最佳实践

    往往一些成功的软件公司在构建解决方案的时候十分注重其可重复性.可审计性.和简便性,而基础设施即代码(IaC)的出现让开发人员能够将这些时间应用于基础设施的分配.目前的存储 IaC 的实践有以下三种: ...

  6. SpringBoot yml 小格子 变 小叶子

    SpringBoot yml 小格子 变 小叶子 一般添加十多个模块后会出现这样的情况,正常情况下,看POM 文件里的 spring 引用是否异常 一般把 idea 关了再打开试试,有几次我是关了再开 ...

  7. CH6803 导弹防御塔 (二分 + 匈牙利 / 网络流)

    链接:https://ac.nowcoder.com/acm/contest/1062/D 题目描述 Freda的城堡-- "Freda,城堡外发现了一些入侵者!" "喵 ...

  8. AIO异步通信。BIO同步阻塞式IO, NIO同步非阻塞通信。

    IO 什么是IO? 它是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键,因而所有 I/O 的主体实际上是内置在操作系统中的.单独的程序一般是让系统为它们完 ...

  9. 通过部署流行 Web 框架掌握 Serverless 技术

    大家好,我是霍大侠,本篇我们通过学习部署流行 Web 框架,如 Spring Boot,Express,Web IDE,让你掌握 Serverless 函数计算架构和技术,领略弹性并发.高可用的好处. ...

  10. SpringCloud学习 系列三、 创建一个没有使用springCloud的服务提供者和消费者

    系列导航 SpringCloud学习 系列一. 前言-为什么要学习微服务 SpringCloud学习 系列二. 简介 SpringCloud学习 系列三. 创建一个没有使用springCloud的服务 ...