前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记Ant Design Vue Modal组件的使用及踩的坑

记Ant Design Vue Modal组件的使用及踩的坑

作者头像
德顺
发布2019-11-26 14:18:41
22.7K1
发布2019-11-26 14:18:41
举报
文章被收录于专栏:前端资源

最近在使用 Vue 开发一个项目,前端框架用的 Ant Design ,Ant Design for React 已经比较成熟,兼容性和灵活性也比较高。但是 Ant Design for Vue 貌似还有点不那么完善。

今天先整理一下 Modal 组件的使用及我开发过程中注意到的一些点。至于 Antd for Vue 存在的 Bug,后期整理到的时候在说吧。

Antd for Vue Modal 组件的使用:

引入及注册:

首先要引入 Vue ,然后是 Ant Design Modal 组件:

代码语言:javascript
复制
import Vue from 'vue'
import { Modal } from 'ant-design-vue';

Antd 的安装和配置我就不赘述了,详情见官方API:在 vue-cli 3 中使用

在使用之前,必须要先注册组件:

代码语言:javascript
复制
Vue.component(Modal.name, Modal);

常用参数/属性:

隐藏右上角 × 号: :closable="false"

居中显示: centered

确定事件: @ok="handleOk"

自定义宽度: width="80%"

确定按钮文字: okText="确认"

取消按钮文字: cancelText="取消"

禁止点击蒙层(遮罩)关闭: :maskClosable="false"

确认按钮样式: okType="link"

确认按钮样式,同 Button ,有 primary dashed danger link 四种样式

嗯,Antd 只有确认按钮的自定义样式,取消按钮没有,那么就会出现下面这样的情况:

不过,可以使用 :cancelButtonProps 来设置取消按钮的 type 属性: :cancelButtonProps="{ props: {type: 'link'} }"

隐藏 footer : :footer="null"

有时需要自定义按钮,不使用 Antd 自带的按钮样式,可以把 Footer 部分隐藏。然后给按钮绑定“确定”和“取消”事件。

确定:@click="handleOk"

取消:@click="handleCancle"

以我上图的样式为例:

.Vue 代码:

代码语言:javascript
复制
<template>
    <a-modal :closable="false"
             centered
             v-model="confirmShow"
             @ok="handleOk"
             class="captcha-modal"
             width="80%"
             cancelText="取消"
             okText="确认"
             :cancelButtonProps="{ props: {type: 'link'} }"
             okType="link">
      <h4 class="fz-18 text-c">请输入图片验证码</h4>
      <a-form-item class="form-item mb-0">
        <a-input autosize="true" size="large" v-decorator="['captcha']" placeholder="请输入图片验证码">
        </a-input>
        <img class="captcha-img" src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=4181169730,4061301865&fm=26&gp=0.jpg" alt="">
      </a-form-item>
    </a-modal>
</template>

JS部分:

代码语言:javascript
复制
<script>
  export default {
    data() {
      return {
        confirmShow: false,
      }
    },
    methods: {
      handleOk(e) {
        console.log(e);
        this.confirmShow = false;
        this.getCaptcha()
      },
    },
  }
</script>

CSS 代码:将原始样式覆盖掉

代码语言:javascript
复制
/*验证码弹窗Modal*/
.captcha-modal .form-item{
  background: #F3F6FB;
}
.captcha-modal .form-item input{
  border: none;
  box-shadow: none;
}
.captcha-modal .captcha-img{
  height: 100%;
  width: auto;
  position: absolute;
  right: 10px;
  top: 0;
}
.captcha-modal .ant-modal-footer{
  padding: 0;
}
.captcha-modal .ant-modal-footer>div{
  display: flex;
  justify-content: space-between;
}
.captcha-modal .ant-btn{
  width: 50%;
  height: auto;
  font-size: 16px;
  border-radius: 0;
  padding: 10px 0;
}
.captcha-modal .ant-btn:first-child{
  color: #494d58;
  border-right: 1px solid #e8e8e8;
}

声明:本文由w3h5原创,转载请注明出处:《记Ant Design Vue Modal组件的使用及踩的坑》 https://cloud.tencent.com/developer/article/1543940

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Antd for Vue Modal 组件的使用:
  • 常用参数/属性:
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档