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

使用vue實現(xiàn)各類彈出框組件

 更新時間:2019年07月03日 10:15:33   作者:kuke_kuke  
這篇文章主要介紹了使用vue實現(xiàn)各類彈出框組件,文中給大家提到了vue中常用的dialog組件的封裝,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

這里寫圖片描述

簡單介紹一下vue中常用dialog組件的封裝:

實現(xiàn)動態(tài)傳入內(nèi)容,實現(xiàn)取消,確認等回調(diào)函數(shù)。

首先寫一個基本的彈窗樣式,如上圖所示。

在需要用到彈窗的地方中引入組件:

import dialogBar from './dialog.vue'
components:{
  'dialog-bar': dialogBar,
},
<dialog-bar></dialog-bar>

點擊一個按鈕顯示彈窗,并保證關閉彈窗后再次點擊依舊顯示

在彈窗組件中定義一個value值:v-model="sendVal",sendVal初始值為false。

在打開彈窗的方法中賦值:

openMask(){
  this.sendVal = true;
}

在dialog.vue組件中做如下操作:

props: {
  value: {}  // 注意此處獲取的value對應的就是組件標簽中的v-model
}

定義一個showMask變量用于控制是否顯示彈窗

mounted(){
  this.showMask = this.value;  // 在生命周期中,把獲取的value值獲取給showMash
},
watch:{
  value(newVal, oldVal){
    this.showMask = newVal;   // 監(jiān)測value的變化,并賦值。
  },
  showMask(val) {
    this.$emit('input', val);  // 此處監(jiān)測showMask目的為關閉彈窗時,重新更換value值,注意emit的事件一定要為input。
  }
},

而要想關閉彈窗,只需要定義一個方法:

closeMask(){
  this.showMask = false;
},

此刻已經(jīng)可以實現(xiàn)彈窗的顯示與退出。

下面我們要實現(xiàn)的是動態(tài)添加標題,內(nèi)容等,在組件標簽中加入title,content:

<dialog-bar title="我是標題" content="我是內(nèi)容"></dialog-bar>

可以運用vue的數(shù)據(jù)雙向綁定,更換title,content。

在dialog.vue中獲取內(nèi)容:

props: {
value: {},
  content: {
    type: String,
    default: ''
  },
  title: {
    type: String,
    default: ''
  },
},

<div class="dialog-title">{{title}}</div>
<div class="content" v-html="content"></div>

我們可以運用同樣的原理來獲取不同按鈕中的自定名稱。

下面我們利用傳入的不同type來確定不同的按鈕,并提供不同的回調(diào)函數(shù)。

<dialog-bar title="我是標題" content="我是內(nèi)容" type="danger" dangerText="這是刪除按鈕"></dialog-bar>

如傳入type為danger,我們可以在dialog.vue中props獲取type,并定義一個如下按鈕:

<div v-if="type == 'danger'" class="danger-btn" @click="dangerBtn">
  {{dangerText}}
</div>

dangerBtn(){
  this.$emit('danger');  // 發(fā)送一個danger事件作為回調(diào)函數(shù)
  this.closeMask();  // 關閉彈窗
},

在標簽中定義danger的回調(diào)并做一些操作:

<dialog-bar title="我是標題" content="我是內(nèi)容" type="danger" dangerText="這是刪除按鈕" @danger="clickDanger()"></dialog-bar>

clickDanger(){
  console.log("這里是回調(diào)函數(shù)")
},

同樣原理可以獲取和增添一些其他的操作:

 props: {
    value: {},
    // 類型包括 defalut 默認, danger 危險, confirm 確認,
    type:{
      type: String,
      default: 'default'
    },
    content: {
      type: String,
      default: ''
    },
    title: {
      type: String,
      default: ''
    },
    confirmText: {
      type: String,
      default: '確認'
    },
    cancelText: {
      type: String,
      default: '取消'
    },
    dangerText: {
      type: String,
      default: '刪除'
    },
  },

<div class="btns">
  <div v-if="type != 'confirm'" class="default-btn" @click="closeBtn">
    {{cancelText}}
  </div>
  <div v-if="type == 'danger'" class="danger-btn" @click="dangerBtn">
    {{dangerText}}
  </div>
  <div v-if="type == 'confirm'" class="confirm-btn" @click="confirmBtn">
    {{confirmText}}
  </div>
</div>

點擊此處去github下載彈窗代碼: https://github.com/wwjhzc/vue-dialog

總結(jié)

以上所述是小編給大家介紹的使用vue實現(xiàn)各類彈出框組件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關文章

  • vue3中不支持.sync語法糖的解決方法

    vue3中不支持.sync語法糖的解決方法

    在 Vue 3 中,.sync 修飾符已經(jīng)被移除,在 Vue 2 中,.sync 修飾符是一個語法糖,用于簡化子組件和父組件之間的雙向數(shù)據(jù)綁定,那么本文將給大家介紹一下vue3中不支持.sync語法糖的解決方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • vue watch監(jiān)聽變量值的實時變動示例詳解

    vue watch監(jiān)聽變量值的實時變動示例詳解

    這篇文章主要介紹了vue 監(jiān)聽變量值的實時變動 watch,使用字符串形式的偵聽器函數(shù),還有一種是使用函數(shù)形式的偵聽器函數(shù),本文通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • Vue修飾符的使用詳解

    Vue修飾符的使用詳解

    為了方便大家寫代碼,Vue給大家提供了很多方便的修飾符,比如我們經(jīng)常用到的取消冒泡,阻止默認事件等等,這篇文章將給大家分享Vue?中的常用的修飾符
    2022-10-10
  • Vue3中的ref和reactive響應式原理解析

    Vue3中的ref和reactive響應式原理解析

    這篇文章主要介紹了Vue3中的ref和reactive響應式,本節(jié)主要介紹了響應式變量和對象,以及變量和對象在響應式和非響應式之間的轉(zhuǎn)換,需要的朋友可以參考下
    2022-08-08
  • vue實現(xiàn)樣式之間的切換及vue動態(tài)樣式的實現(xiàn)方法

    vue實現(xiàn)樣式之間的切換及vue動態(tài)樣式的實現(xiàn)方法

    這篇文章主要介紹了vue中如何實現(xiàn)樣式之間的切換及vue動態(tài)樣式的實現(xiàn)方法,本文給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下
    2017-12-12
  • vue3組件銷毀的具體實現(xiàn)

    vue3組件銷毀的具體實現(xiàn)

    組件的銷毀意味著從 DOM 中移除該組件,并清除與之相關的所有事件監(jiān)聽器和子組件,本文主要介紹了vue3組件銷毀的具體實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • 詳解vue中router-view組件的生成原理

    詳解vue中router-view組件的生成原理

    在vue的使用過程中,有一個組件,幾乎是必用的,那就是router-view,它是所有組件的入口,是單頁面系統(tǒng)的一把利劍,如果你的系統(tǒng)是火箭,那么router-view無疑將是這艘火箭的北斗衛(wèi)星,本文將給大家介紹vue中的router-view組件是如何生成的,感興趣的朋友可以參考下
    2024-01-01
  • vue項目中字符串換行顯示方式(返回的數(shù)據(jù)包含‘\r\n’字符)

    vue項目中字符串換行顯示方式(返回的數(shù)據(jù)包含‘\r\n’字符)

    這篇文章主要介紹了vue項目中字符串換行顯示方式(返回的數(shù)據(jù)包含‘\r\n’字符),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue3+Vite 環(huán)境變量和模式配置詳解(推薦)

    Vue3+Vite 環(huán)境變量和模式配置詳解(推薦)

    在Vue 3中,你可以通過 import.meta.env 訪問環(huán)境變量,這些變量可以在你的應用代碼中使用,但它們通常用于配置不應該硬編碼在代碼中的值,這篇文章主要介紹了Vue3+Vite 環(huán)境變量和模式配置詳解,需要的朋友可以參考下
    2024-12-12
  • Element?UI安裝全過程

    Element?UI安裝全過程

    element?ui?就是基于vue的一個ui框架,該框架基于vue開發(fā)了很多相關組件,方便我們快速開發(fā)頁面,餓了么前端團隊基于vue進行開發(fā)并且進行了開源?element?ui?中提供全部都是封裝好組件,本文給大家介紹Element?UI安裝全過程,感興趣的朋友一起看看吧
    2024-01-01

最新評論

丽江市| 崇左市| 民县| 军事| 定陶县| 湘乡市| 云阳县| 城固县| 临江市| 峨边| 普兰店市| 昌乐县| 淄博市| 洛阳市| 利津县| 五大连池市| 新晃| 扎囊县| 宾阳县| 利辛县| 浮山县| 安多县| 禹城市| 龙游县| 灵武市| 汉源县| 永吉县| 达孜县| 通州市| 云阳县| 嘉义县| 乌拉特中旗| 乳源| 龙江县| 邵阳市| 奎屯市| 乌兰浩特市| 定日县| 米泉市| 古浪县| 富顺县|