zoukankan      html  css  js  c++  java
  • Ant Design Vue封装a-drawer

    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',
            },
            // 宽度
             {
                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, //打开的方向
                 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
    }
    

    作者:明月人倚楼
    出处:https://www.cnblogs.com/IwishIcould/

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!

    万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    支付宝
    微信
    本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    POJ1296
    BZOJ1003
    POJ1160
    中国剩余定理(转)
    组合数公式
    网络操作系统*习题
    网络操作系统*习题
    网络操作系统习题
    网络操作系统习题
    Access总结
  • 原文地址:https://www.cnblogs.com/IwishIcould/p/15034290.html
Copyright © 2011-2022 走看看