最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實(shí)現(xiàn)自定義"模態(tài)彈窗"組件實(shí)例代碼

 更新時(shí)間:2021年12月14日 11:14:09   作者:禾小毅  
頁面中會有很多時(shí)候需要彈窗提示,我們可以寫一個(gè)彈窗組件,下面這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)自定義"模態(tài)彈窗"組件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

對話框是很常用的組件 , 在很多地方都會用到,一般我們可以使用自帶的alert來彈出對話框,但是假如是設(shè)計(jì)出的圖該怎么辦呢 ,所以我們需要自己寫一個(gè)對話框,下面來一起看看詳細(xì)的實(shí)現(xiàn)過程。

效果圖

以上截圖,紅色邊框部分,表示 “文字、圖標(biāo)或者圖片” 是可更改部分

實(shí)例代碼

一、創(chuàng)建彈窗組件 quitDialog.vue 組件

<template>
  <transition-group name='fade'>
    <!-- 退出彈窗 -->
    <div class="quit_dialog"
         key="1"
         @click="isQuit = false"
         v-if="isQuit"
         @touchmove.prevent>
    </div>
    <div class="quit_box"
         v-show="isQuit"
         key="2">
      <img :src="imgUrl"
           :alt="imgLoadTip">
           <div class="quit_title">{{title}}</div>
      <p>{{content}}</p>
      <button class="quit_btn" @click="leftClick">{{btnText}}</button>
      <button class="quit_close" @click="rightClick">{{rightText}}</button>
    </div>
  </transition-group>
</template>
<script>
export default {
  name: 'Popup',
  data () {
    return {
      isQuit: false,
      imgUrl: '',
      title: '',
      content: '',
      btnText: '',
      rightText: ''
    }
  },
  methods: {
    leftClick () {
      this.leftBtn()
      this.isQuit = false
    },
    rightClick () {
      this.rightBtn()
      this.isQuit = false
    }
  }
}
</script>
<style lang="scss" scoped>
// 退出彈窗
.fade-enter,
.fade-leave-active {
  opacity: 0;
}
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.35s;
}
// 全局彈窗
.quit_dialog {
  background: rgba(0,0,0,.5);
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 10000;
}
 
.quit_box {
  width: 700px;
  background: #fff;
  position: fixed;
  top: 50%;
  left: 50%;
  margin-left: -350px;
  margin-top: -190px;
  z-index: 10001;
  border-radius: 10px;
  text-align: center;
  padding: 50px;
  img{
    width: 80px;
  }
 .quit_title{
      color: #666;
      font-size: 28px;
      margin: 45px 0px;
  }
  button {
    border-radius: 32px;
    padding:20px 0px;
    font-size: 26px;
    border-radius: 8px;
    width: 214px;
  }
  .quit_btn{
    color: #03BA82;
    background: #fff;
    border: 1px solid #03BA82;
    margin-right: 32px;
  }
  .quit_close {
    background: linear-gradient(0deg, #03BA82, #01D695);
    box-shadow: 0px 3px 4px 0px rgba(1, 84, 58, 0.27);
    border: 1px solid #03BA82;
    color: #fff;
  }
}
</style>

二、創(chuàng)建 graspDialog.js

import Vue from 'vue'
import Grasp from '../components/QuitDialog/QuitDialog'
 
const PopupBox = Vue.extend(Grasp)
 
Grasp.install = function (data) {
  let instance = new PopupBox({
    data
  }).$mount()
 
  document.body.appendChild(instance.$el)
 
  Vue.nextTick(() => {
    instance.isQuit = true
    // isQuit 和彈窗組件里的isQuit對應(yīng),用于控制顯隱
  })
}
 
export default Grasp

三、在全局 main.js 引入

import Vue from 'vue'
import Popup from './api/quitDialog'
Vue.prototype.$popup = Popup.install

四、頁面中調(diào)用,只需在函數(shù)中調(diào)用即可

methods: {
    graspBtn () {
      this.$grasp({
        imgUrl: require('../../assets/home/quits.png'), // 頂部圖片.
        imgLoadTip: '圖片加載中...',
        content: '溫馨提示',
        title: '注意:該學(xué)習(xí)任務(wù)未完成,是否確認(rèn)退出',
        btnText: '殘忍退出',
        rightText: '繼續(xù)學(xué)習(xí)',
        // 左邊點(diǎn)擊事件
        leftBtn: () => {
          this.$store.dispatch('user/logout').then(() => {
            this.$signalr.LogoutPad()
            this.$signalr.SendMsg(2, 0, '退出系統(tǒng)')
            this.$router.push('/login')
          })
        },
        // 右邊點(diǎn)擊事件
        rightBtn: () => {}
      })
    }
}

總結(jié)

到此這篇關(guān)于vue實(shí)現(xiàn)自定義"模態(tài)彈窗"組件的文章就介紹到這了,更多相關(guān)vue自定義"模態(tài)彈窗"組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • Vue Router4與Router3路由配置與區(qū)別說明

    Vue Router4與Router3路由配置與區(qū)別說明

    這篇文章主要介紹了Vue Router4與Router3路由配置與區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-12-12
  • vue3.0基于views批量實(shí)現(xiàn)動態(tài)路由的方法(示例代碼)

    vue3.0基于views批量實(shí)現(xiàn)動態(tài)路由的方法(示例代碼)

    以前vue項(xiàng)目中也有很多實(shí)現(xiàn)動態(tài)路由的方法,比如有一些項(xiàng)目涉及權(quán)限的可能會使用api請求路由數(shù)據(jù)在來createRouter,或者本地構(gòu)建使用routes.push來動態(tài)構(gòu)建路由, 今天介紹一種新的方式來基于某個(gè)文件夾批量構(gòu)建動態(tài)路由的方法,感興趣的朋友一起看看吧
    2024-12-12
  • Vue中如何實(shí)現(xiàn)字符串換行

    Vue中如何實(shí)現(xiàn)字符串換行

    這篇文章主要介紹了Vue中如何實(shí)現(xiàn)字符串換行問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue3使用ECharts實(shí)現(xiàn)?;鶊D的代碼示例

    Vue3使用ECharts實(shí)現(xiàn)?;鶊D的代碼示例

    桑基圖是一種用于直觀顯示流向數(shù)據(jù)的可視化工具,特別適合展示復(fù)雜的網(wǎng)絡(luò)關(guān)系和資源流動,在前端項(xiàng)目中,通過結(jié)合?Vue?3?和?ECharts,可以快速實(shí)現(xiàn)交互性強(qiáng)、樣式美觀的桑基圖,本文將通過完整的代碼示例,帶你一步步完成一個(gè)?;鶊D的實(shí)現(xiàn),需要的朋友可以參考下
    2025-01-01
  • vue-router中hash模式與history模式的區(qū)別

    vue-router中hash模式與history模式的區(qū)別

    為了構(gòu)建 SPA(單頁面應(yīng)用),需要引入前端路由系統(tǒng),這就是 Vue-Router 存在的意義,而這篇文章主要給大家介紹了關(guān)于vue-router中兩種模式區(qū)別的相關(guān)資料,分別是hash模式、history模式,需要的朋友可以參考下
    2021-06-06
  • Vue-Cli項(xiàng)目優(yōu)化操作的實(shí)現(xiàn)

    Vue-Cli項(xiàng)目優(yōu)化操作的實(shí)現(xiàn)

    這篇文章主要介紹了Vue-Cli項(xiàng)目優(yōu)化操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • vue?cli3?項(xiàng)目中如何使用axios發(fā)送post請求

    vue?cli3?項(xiàng)目中如何使用axios發(fā)送post請求

    這篇文章主要介紹了vue?cli3?項(xiàng)目中如何使用axios發(fā)送post請求,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vuex 模塊化使用詳解

    Vuex 模塊化使用詳解

    這篇文章主要介紹了Vuex 模塊化使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 分享9個(gè)Vue的巧妙冷技巧

    分享9個(gè)Vue的巧妙冷技巧

    這篇文章主要介紹了分享9個(gè)Vue的巧妙冷技巧,文章首先通過巧用$attrs和$listeners的技巧展開,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • vue3中g(shù)etCurrentInstance獲取組件實(shí)例踩坑詳細(xì)記錄

    vue3中g(shù)etCurrentInstance獲取組件實(shí)例踩坑詳細(xì)記錄

    getCurrentInstance()是Vue.js3?Composition?API中的一個(gè)函數(shù),它的作用是獲取當(dāng)前組件的實(shí)例對象,下面這篇文章主要給大家介紹了關(guān)于vue3中g(shù)etCurrentInstance獲取組件踩坑的相關(guān)資料,需要的朋友可以參考下
    2024-02-02

最新評論

房产| 尼玛县| 文成县| 建平县| 石门县| 礼泉县| 女性| 林甸县| 阿克陶县| 秦皇岛市| 永吉县| 靖江市| 綦江县| 台中市| 大关县| 烟台市| 湟源县| 丁青县| 乌鲁木齐县| 阳江市| 新宁县| 温州市| 宁海县| 陆河县| 绵阳市| 湖口县| 白水县| 安丘市| 中阳县| 福安市| 神农架林区| 昌吉市| 尚义县| 绥江县| 朝阳区| 新乡县| 石屏县| 迁西县| 岳普湖县| 长顺县| 尤溪县|