IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue中一个封装好的弹窗 -> 正文阅读

[JavaScript知识库]vue中一个封装好的弹窗

<template>
    <div id="qf-modal" v-if="visible">
        <div class="mask">
            <div class="wrap">
                <!-- 具名插槽 -->
                <slot name="title"> <!--在这个具名插槽中的内容为 具名插槽的默认值 当在父组件中没有该内容时,则使用这个默认的值-->
                    <div class="title">
                        警告
                    </div>
                </slot>
                <slot name="body">
                    <div class="body">
                            你确定要购买吗
                    </div>
                </slot>
               <div class="wrap__button">
                <button class="model__button--confirm" @click="confirm">确定</button>
                <button class="model__button--cancel" @click="cancel">取消</button>
          </div>
            </div>
        </div>
    </div>
</template>

<script>
//1.需要一个属性,控制组件的显示和隐藏,接受一个visible属性来控制显示和隐藏
//2.需要动态的接受titl body button,如果没有传入的时候,采用默认的结构
//3.点击确定或者是取消按钮的时候需要把模态框关掉,预留方法

//方法名on-confirm点击确定的处理函数
//方法名on-cancel点击取消的处理函数
export default {
    data(){
        return{}
    },
    props:{ //通过props来接受这个visible属性
        visible:{ //表示对visible进行校验
            type:Boolean, //表示这个visible的类型要为布尔值
            default(){ //表示默认值 
                return false //默认为false
            }
        }
    },
    methods: {
        confirm(){this.$emit('on-confirm')},//表示将on-confirm发送出去 类似于发布事件
        cancel(){this.$emit('on-cancel')}
    }
}
</script>

<style scoped>
    .mask{
        position: fixed;
        background-color: rgba(0,0,0,0.3);
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .wrap{
        width: 350px;
        background-color: #fff;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        border-radius: 10px;
    }
    .wrap div{
        margin: 15px 0;
    }
    .model__button--confirm{
        margin: 0 5px;
        outline: none;
        border:0;
        width: 150px;
        height: 30px;
        background: linear-gradient(90deg,#1596fb,pink);
        border-radius: 0.2847rem;
        display: block;
        color: #fff;
        cursor: pointer;
    }
    .model__button--cancel{
        outline: none;
        border: 0;
        width:150px;
        height: 30px;
        background: linear-gradient(90deg,blue,green);
        border-radius: 0.2857rem;
        display: block;
        color: #fff;
        cursor: pointer;
    }
    .wrap__button{
        display: flex;
        justify-content: center;
        align-items: center;
    }
</style>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:33:25  更:2021-07-11 16:35:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 23:53:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码