亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue中怎么封裝一個彈出框組件

發布時間:2021-07-09 15:48:31 來源:億速云 閱讀:215 作者:Leah 欄目:web開發

這期內容當中小編將會給大家帶來有關vue中怎么封裝一個彈出框組件,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1.你需要先建一個彈出框的模板:

//首先創建一個mack.vue
<template>
 <div class="mack" v-if="isShow">
  <div class="mackWeb" :>
   <div class="title font_b" v-if="text.title" :>{{text.title.trim()}}</div>
   <div class="mesg font_s" v-if="text.mesg" :>{{text.mesg.trim()}}</div>
   <div v-html="text.cntMsg"></div>
   <div class="footb font_s">
    <div
     class="foot_l borderlf borderTop"
     @click="cancel"
     v-if="text.cancel"
     :
    >{{text.btn.cancelVal}}</div>
    <div
     class="foot_r borderTop"
     @click="confirm"
     v-if="text.confirm"
     :
    >{{text.btn.confirmVal}}</div>
   </div>
  </div>
 </div>
</template>

//寫js
<script>
 export default {
  data() {
   return {
    isShow: true,
    text: {
     title: "",
     mesg: "",
     cnTmesg: "",
     cancel: true,
     confirm: true,
     mackStyle: null,
  titleStyle: null,
  mesgStyle:null,
     cancelValStyle: null,
     confirmValStyle: null,
     btn: {
      confirmVal: "確定",
      cancelVal: "取消"
     }
    }
   };
  },
  methods: {
   cancel() {
    this.isShow = false;
   },
   confirm() {
    this.isShow = false;
   }
  }
};
</script>

//css
<style scoped lang='less'>
 .mack {
 position: fixed;
 width: 100%;
 height: 100%;
 overflow: hidden;
 top: 0;
 left: 0;
 background: rgba(21, 21, 21, 0.7);
 .font_b {
  font-size: 14/50rem;
  color: #231a2f;
 }
 .font_s {
  font-size: 12/50rem;
  color: #655a72;
 }
 .borderTop {
  border-top: 1/50rem solid #e4e4e4;
 }
 .mackWeb {
  background: #ffffff;
  width: 300/50rem;
  min-width: 300/50rem;
  margin: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  .title {
   text-align: center;
   padding: 15/50rem 15/50rem 0 15/50rem;
  }
  .mesg {
   padding: 15/50rem;
   text-align: center;
  }
  .footb {
   display: inline-table;
   width: 100%;
   .borderlf {
    border-right: 1/50rem solid #e4e4e4;
   }
   div {
    display: table-cell;
    box-sizing: border-box;
    text-align: center;
    padding: 10/50rem 0;
   }
  }
 }
}
</style>

2.接著你需要一個js:mackjs.js

import Vue from 'vue';
import confirm from './mack';
let confirmConstructor = Vue.extend(confirm);
let theConfirm = function (text) {
  return new Promise((res, rej) => { //promise封裝,ok執行resolve,no執行rejectlet
   let confirmDom = new confirmConstructor({  
    el: document.createElement('div')
   })
   document.body.appendChild(confirmDom.$el); //new一個對象,然后插入body里面
   confirmDom.text = Object.assing( confirmDom.text,text);  //為了使confirm的擴展性更強,這個采用對象的方式傳入,所有的字段都可以根據需求自定義
   confirmDom.ok = function () {
    res()
    confirmDom.isShow = false
   }
   confirmDom.close = function () {
    rej()
    confirmDom.isShow = false
   }
  })
 }
 export default theConfirm; 
  //暴露出去,別忘記掛載到vue的原型上 
  //  => 在main.js里面先引入 import theConfirm from './components/confirm/confirm.js'
  //  => 再掛載 Vue.prototype.$confirm = theConfirm;
  //在需要的地方直接用以下方法調用即可:
  //  this.$confirm({
  //   type:'提示',
  //   msg:'是否刪除這條信息?',
  //   btn:{
  //     ok:'yes',
  //     no:'no'
  //   }
  // }).then(() => {
  //   console.log('ok')
  // })
  // .catch(() => {
  //   console.log('no')
  // })

-3.你接著需要在main.js導入這個文件

import macksjs from './assets/mackjs'
Vue.prototype.$confirm= macksjs ;

-4.最后在你需要引入的vue文件中直接調用就好了

<button @click="deleteaas">我是彈出框</button>
 methods:{
  deleteaas() {
   this.$confirm({
    title: "addd",
    mesg: "您確定不再關注該客戶嗎?",
    cntMsg: '<div class="helAA">你好</div>',
    cancelValStyle:{color:'red'},
    btn: {
     confirmVal: "確a定",
     cancelVal: "取a消"
    }
   })
    .then(() => {
     console.log("yes");
     //點擊確定之后的處理
    })
    .catch(() => {
     console.log("no");
    });
  }
 }

上述就是小編為大家分享的vue中怎么封裝一個彈出框組件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

泉州市| 阿拉善盟| 云和县| 扶风县| 吴江市| 苏尼特左旗| 河东区| 陕西省| 余江县| 苗栗市| 儋州市| 酒泉市| 马鞍山市| 达日县| 三河市| 花垣县| 桃园市| 赞皇县| 营口市| 含山县| 岳西县| 平和县| 蒙城县| 永春县| 安丘市| 冕宁县| 兴山县| 永川市| 天柱县| 延安市| 盐津县| 孟津县| 克什克腾旗| 闵行区| 和田市| 阿克苏市| 彝良县| 五大连池市| 东平县| 汉中市| 五常市|