<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        詳解如何用VUE寫一個多用模態(tài)框組件模版

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:07:03
        文檔

        詳解如何用VUE寫一個多用模態(tài)框組件模版

        詳解如何用VUE寫一個多用模態(tài)框組件模版:對于新手們來說,如何寫一個可以多用的組件,還是有點難度的,組件如何重用,如何傳值這些在實際使用中,是多少會存在一些障礙的,所以今天特意寫一個最常用的模態(tài)框組件提供給大家,希望能幫助到您! 懶癌患者直接復制粘貼即可 Modal.vue組件 <t
        推薦度:
        導讀詳解如何用VUE寫一個多用模態(tài)框組件模版:對于新手們來說,如何寫一個可以多用的組件,還是有點難度的,組件如何重用,如何傳值這些在實際使用中,是多少會存在一些障礙的,所以今天特意寫一個最常用的模態(tài)框組件提供給大家,希望能幫助到您! 懶癌患者直接復制粘貼即可 Modal.vue組件 <t

        對于新手們來說,如何寫一個可以多用的組件,還是有點難度的,組件如何重用,如何傳值這些在實際使用中,是多少會存在一些障礙的,所以今天特意寫一個最常用的模態(tài)框組件提供給大家,希望能幫助到您!

        懶癌患者直接復制粘貼即可

        Modal.vue組件

        <template>
         <!-- 過渡動畫 -->
         <transition name="modal-fade">
         <!-- 關(guān)閉模態(tài)框事件 和 控制模態(tài)框是否顯示 -->
         <div class="modal-backdrop" @click="$emit('closeModal')" v-show="show">
         <div class="modal">
         <img class="img" :src="imgadress" alt="">
         <div class="modal-body" id="modalDescription">
         <li></li>
         <!-- 狀態(tài)提示文字的插槽 -->
         <slot name="status">{{statusText}}</slot>
         <li></li>
         </div>
         <!-- 模態(tài)框內(nèi)容文字 可有可無 -->
         <div class="modal-content" v-if="contentText">
         {{contentText}}
         <span v-if="IDList" v-for="item in IDList" :key="item.id">{{item.payMoney}}
         <i>{{item.yuan}}</i>
         </span>
         </div>
         <ul>
         <!-- 模態(tài)框按鈕 可選單個確定按鈕 和 兩個確定、取消按鈕 -->
         <!-- 單個確定按鈕 -->
         <li v-if="alert" :class="buttonBackground" @click.stop="$emit('button')">確定</li>
         <!-- 確定和取消按鈕 -->
         <li v-else class="confirm">
         <div>取消</div>
         <div :class="buttonBackground" @click.stop="$emit('confirm')">{{sure}}</div>
         </li>
         </ul>
         </div>
         </div>
         </transition>
        </template>
        <script>
        export default {
         name:'modal',
         // 通過 props 傳值
         props: {
         imgadress:String,
         title:String, //標題文字
         show:{ //顯示取消
         type:Boolean,
         default:false
         },
         statusText:String, //狀態(tài)文字
         contentText:String, //描述文字
         IDList:Array, //ID 列表
         payMoney:Number,
         yuan:String,
         buttonBackground:String, //按鈕背景色
         alert:String, //判斷一個還是兩個按鈕
         sure:String, //第二個按鈕的提示文字
         
         },
         data(){
         return{
         closemodal:"close",
         // isModalVisible:false,
         // 確定和取消按鈕的兩種顏色
         red:'redBackground',
         blue:'blueBackground'
         }
         },
         methods:{
         // 關(guān)閉模態(tài)框事件
         close(){
         this.$emit('close')
         },
         }
        }
        </script>
        <style lang="scss" scoped> 
        .modal-backdrop {
         position: fixed; 
         top: 0; 
         right: 0; 
         bottom: 0; 
         left: 0; 
         background-color: rgba(0,0,0,.3); 
         display: flex; 
         justify-content: center; 
         align-items: center;
         z-index: 12;
         .modal { 
         background-color: #fff; 
         box-shadow: 2px 2px 20px 1px; 
         overflow-x:auto; 
         display: flex; 
         flex-direction: column; 
         width: 11.8rem;
         position: relative;
         border-radius: 0.2rem;
         .img{
         width: 3.6rem;
         height: 3.6rem;
         margin: 0.8rem 4.1rem;
         }
         .modal-header{ 
         padding: 0.6rem 4.1rem;
         width: 3.6rem;
         height: 3.6rem;
         box-sizing: border-box; 
         .img{
         width: 100%;
         height: 100%;
         }
         div{
         width: 100%;
         height: 100%;
         background: #000;
         }
         } 
         .modal-body{
         width: 100%;
         height: 0.48rem;
         padding: 0rem 1.6rem;
         margin-bottom: 0.8rem;
         box-sizing: border-box;
         display: flex;
         justify-content: space-between; 
         align-items: center; 
         li{
         width: 2rem;
         height: 0.04rem;
         background: #eeeee5;
         }
         }
         .modal-content{
         width: 100%;
         // height: 0.6rem;
         margin-bottom: 0.8rem;
         text-align: center;
         color: #34304B;
         span{
         color: #32B8B9;
         i{
         color: #4F4F4F;
         }
         }
         }
         ul{
         li{
         width: 100%;
         height: 1.52rem;
         line-height: 1.52rem;
         text-align: center;
         color: #fff;
         font-size: 0.56rem;
         letter-spacing: 0.4rem;
         }
         .confirm{
         display: flex;
         div:nth-child(1){
         flex: 1;
         background: #DEDEDE;
         color: #BCBBBF;
         }
         div:nth-child(2){
         flex: 1;
         color: #fff;
         }
         }
         }
         .blueBackground{
         background: #21A6DF;
         }
         .redBackground{
         background: #FF4046;
         }
         } 
        }
        /* 動畫 */
        .modal-fade-enter,.modal-fade-leave-active{
         opacity: 0;
        }
        .modal-fade-enter-active, .modal-fade-leave-active{
         transition: opacity 0.5s ease;
        }
        </style>
        

        新建一個index.js文件,在其中全局引入組件,全局引入之后,就不用在每個調(diào)用的組件里面單獨引入了,可以直接使用

        import Modalfrom "./Modal.vue";
        const components = {
         install: function (Vue) {
         Vue.component('Modal', Modal);
         }
        }
        //導出組件
        export default components;
        

        Index.vue中調(diào)用

        <template>
         <div class="index">
        <!-- 提交成功模態(tài)框 -->
         <Modal
         ref="Modal"
         :imgadress="imgadress"
         v-show="isModalVisible"
         statusText="提交成功"
         @closeModal="closeModal"
         contentText="Index.vue"
         :IDList="IDList"
         :buttonBackground="red"
         sure="確定"
         @confirm="confirm"
         >
         <!-- :payMoney="payMoney"
         yuan="元" -->
         </Modal>
         <button @click="showModel">支付成功模態(tài)框</button>
        
         </div>
        </template>
        <script>
        export default {
         name: 'Index',
         data(){
         return{
         // 模態(tài)框
         imgadress:require('./../../assets/img/success.png'),
         isModalVisible:false,
         show: false,
         showToast: false,
         thisIndex:0,
         green:'green',
         blue:'',
         red:'',
         IDList:[
         {payMoney:23456,yuan:'、'},
         {payMoney:23456,yuan:'、'},
         {payMoney:23456,yuan:'、'},
         {payMoney:23456,yuan:'、'},
         {payMoney:23456,yuan:'、'},
         {payMoney:23456,yuan:'、'},
         {payMoney:23456,yuan:'、'},
         ],
         payMoney:99,
         }
         },
         methods:{
         // 提示模態(tài)框
         showModel(){
         this.isModalVisible = true;
         this.blue = this.$refs.Model.blue
         this.red = this.$refs.Model.red
         
         },
         closeModal(){
         this.isModalVisible = false
         },
         confirm(){
         console.log(11111111111);
         },
         }
        }
        </script>
        
        

        效果如圖

        模態(tài)框-1.gif

        如果只需要一個確定按鈕,只需要在調(diào)用的時候,這么寫就好了

        <template>
         <div class="index">
        <!-- 提交成功模態(tài)框 -->
         <Modal
         ref="Modal"
         :imgadress="imgadress"
         v-show="isModalVisible"
         statusText="提交成功"
         @closeModal="closeModal"
         contentText="Index.vue"
         :IDList="IDList"
         :buttonBackground="blue"
         @button="closeModal"
         sure="確定"
         alert="1"
         >
         </Modal>
         <button @click="showModel">支付成功模態(tài)框</button>
        
         </div>
        </template>

        如圖

        模態(tài)框-2.gif

        可能并不是特別完美,如果您發(fā)現(xiàn)有缺點,還請不吝賜教!

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        詳解如何用VUE寫一個多用模態(tài)框組件模版

        詳解如何用VUE寫一個多用模態(tài)框組件模版:對于新手們來說,如何寫一個可以多用的組件,還是有點難度的,組件如何重用,如何傳值這些在實際使用中,是多少會存在一些障礙的,所以今天特意寫一個最常用的模態(tài)框組件提供給大家,希望能幫助到您! 懶癌患者直接復制粘貼即可 Modal.vue組件 <t
        推薦度:
        標簽: VUE 模板 寫一個
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲成年轻人电影网站www | 中国在线观看免费高清完整版| 国产亚洲综合久久系列| 一级黄色免费网站| 狠狠色婷婷狠狠狠亚洲综合| 韩国免费A级毛片久久| 国产AV无码专区亚洲AV毛网站| 91黑丝国产线观看免费| 亚洲精品国产肉丝袜久久| 免费福利在线播放| 亚洲人成色777777老人头| 国产免费资源高清小视频在线观看| 在线观看亚洲AV日韩A∨| 日本黄色免费观看| 亚洲黄片手机免费观看| 国精无码欧精品亚洲一区| 在免费jizzjizz在线播| 亚洲中文字幕久久精品蜜桃| 免费一级毛片女人图片| 你是我的城池营垒免费观看完整版| 久久精品亚洲综合| 毛片在线看免费版| 免费人成再在线观看网站 | 国产成人免费网站| 亚洲av乱码一区二区三区按摩| 中文字幕亚洲第一| 曰批视频免费40分钟试看天天| 亚洲成av人无码亚洲成av人 | 老司机亚洲精品影院无码 | 久久国产乱子伦精品免费看| 亚洲AV无码精品蜜桃| 亚洲一区二区三区乱码A| 免费女人高潮流视频在线观看| 亚洲色大成WWW亚洲女子| 国产成人精品亚洲精品| 久久久久久精品免费看SSS| 青娱乐在线免费观看视频| 亚洲AV成人精品网站在线播放| 成全视频在线观看免费高清动漫视频下载 | 精品国产香蕉伊思人在线在线亚洲一区二区| a级毛片在线免费观看|