封装一个自己的Dialog 对话框

该文展示了如何创建一个Vue.js组件,用于实现具有基本结构和样式的对话框。组件包括标题、内容和操作按钮,并使用.v-if和.sync修饰符进行显示控制和状态同步。此外,还提及了ElementUI的灵感,以及通过具名和匿名插槽允许父组件定制标题和内容。
摘要由CSDN通过智能技术生成

先写静态,慢慢改造

初始组件结构

<template>
 <div class="dialog">
  <div class="cantiner">

    <div class="header">
      <h4>标题</h4>
      <span>x</span>
    </div>

   <div class="main">
   半醉半醒日复日,花开花落年复年
   </div>

   <div class="footer">
    <button>确定</button>
    <button>取消</button>
   </div>
  </div>
 </div>
</template>
<script>
export default {
  name: 'DialogT',
  data () {
    return {

    }
  },
  created () {
  },
  computed: {
  },
  methods: {
  }
}
</script>

<style lang='scss'  scoped>

.dialog{
width: 100%;
height: 100%;
background: rgba(0,0,0,0.3);
position: fixed;
.cantiner{
  position: relative;
  width: 40%;
  background: #ffff;
  top: 50%;
  left: 50%;
  transform: translate(-50% , -50%);
  .header{
    padding: 10px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    span{
      cursor: pointer;
    }
  }
  .main{
    padding: 50px 0px;
  }
  .footer{
    padding: 20px 0px;
    & button:nth-child(1) {
      margin-right: 40px;
    }
  }
}
}

</style>

main.js全局注册引入

import TdialogT from './components/TdialogT.vue'
Vue.component('TdialogT', TdialogT)

 使用组件

 浏览器效果 

 使用v-bind的修饰符.sync,设置初始false,子组件不接收也可以使用,使用v-if判断

父组件

     <TdialogT :flagshow.sync="flagshow"></TdialogT>

子组件

借鉴Elment   

closeDialog 关闭的回调

使用.sync语法糖在子组件抛出update事件修改flagshow状态

 效果

 具名插槽,匿名插槽

 让父组件,可以设置子组件的,标题,内容,宽度

 演示

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值