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

Vue3中結(jié)合ElementPlus實現(xiàn)彈窗的封裝方式

 更新時間:2024年01月11日 09:43:31   作者:聶大哥  
這篇文章主要介紹了Vue3中結(jié)合ElementPlus實現(xiàn)彈窗的封裝方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

繼上篇文章:Vue2中如何優(yōu)雅的實現(xiàn)dialog的封裝 ,再來一篇Vue3中的彈窗封裝方式,我們要追逐新的技術(shù),及時更新自己的知識庫。

由于在Vue3中使用的UI是ElementPlus及關(guān)于Vue3的一些新特性,所以彈窗中的寫法略有不同。例如控制彈窗顯示的prop值不再是visible屬性的值進行控制,而是改為了 v-model進行綁定變量進行使用;

彈窗的頭部插槽、腳部插槽寫法根據(jù)vue3的特性,寫法不再是slot="footer",而是改為v-slot:footer#footer 并且只能綁定在template標簽體或者自定義組件身上上。

彈窗組件的編寫

<script setup lang="ts">
import { ref, defineEmits, defineExpose } from 'vue'

const emit = defineEmits(['confirmDia'])
let showDia = ref<boolean>(false)

const openDia = (): void => {
  showDia.value = true
}  

const closeDia = (): void => {
  showDia.value = false
}

const confirmDia = (): void => {
  emit('confirmDia', '彈窗內(nèi)容事件處理完畢,信息傳給父組件。')
}  
// vue3中規(guī)定,使用了 <script setup> 的組件是默認私有的:
// 一個父組件無法訪問到一個使用了 <script setup> 的子組件中的任何東西,除非子組件在其中通過 defineExpose 宏顯式暴露
defineExpose({
  openDia,
  closeDia
})

</script>
<template>
   <el-dialog 
		title="Dialog" 
		@close="closeDia" 
		v-model="showDia"
	>
   		
    <template v-slot:footer>
        <el-button @click="confirmDia" type="primary">確定</el-button>
        <el-button @click="closeDia" type="primary" plain>取消</el-button>
    </template>
  </el-dialog>
</template>

父組件中使用彈窗組件

<script setup lang="ts">
import { ref } from 'vue';
import MyDialog from './components/MyDialog.vue'

// 聲明一個 ref 來存放該元素的引用
// 必須和模板里的 ref 同名
// 為了獲取 MyDialog 的類型,我們首先需要通過 typeof 得到其類型,再使用 TypeScript 內(nèi)置的 InstanceType 工具類型來獲取其實例類型
let dialog = ref<InstanceType<typeof MyDialog> | null>(null)

const open = (): void => {
    dialog.value?.openDia()
}
const confirmDia = (val: string): void => {
  console.log(val)
  dialog.value?.closeDia()
}
</script>
<template>
  <MyDialog ref="dialog" @confirmDia="confirmDia"/>
  <el-button @click="open" type="primary">打開彈窗</el-button>
</template>

至此,Vue3中一個完整的自定義彈窗就完成了,具體的寫法相比Vue2還是有些差別的。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue-cli實現(xiàn)多頁面多路由的示例代碼

    vue-cli實現(xiàn)多頁面多路由的示例代碼

    本篇文章主要介紹了vue-cli實現(xiàn)多頁面多路由的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Vue過濾器,生命周期函數(shù)和vue-resource簡單介紹

    Vue過濾器,生命周期函數(shù)和vue-resource簡單介紹

    這篇文章主要介紹了Vue過濾器,生命周期函數(shù)和vue-resource簡單介紹,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2021-01-01
  • Vue3動態(tài)使用KeepAlive組件的實現(xiàn)步驟

    Vue3動態(tài)使用KeepAlive組件的實現(xiàn)步驟

    在 Vue 3 項目中,我們有時需要根據(jù)路由的 meta 信息來動態(tài)決定是否使用 KeepAlive 組件,以控制組件的緩存行為,所以本文給大家介紹了Vue3動態(tài)使用KeepAlive組件的實現(xiàn)步驟,通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2024-11-11
  • Vue使用Echarts的三種實現(xiàn)方式

    Vue使用Echarts的三種實現(xiàn)方式

    文章介紹了三種在Vue項目中使用ECharts的方法:直接使用原始方法、使用vue-echarts和v-chhart,詳細描述了每種方法的步驟和優(yōu)勢,幫助開發(fā)者在Vue項目中更方便地地使用ECharts
    2026-04-04
  • 詳解vue-cli3開發(fā)Chrome插件實踐

    詳解vue-cli3開發(fā)Chrome插件實踐

    這篇文章主要介紹了vue-cli3開發(fā)Chrome插件實踐,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • vue 3.x 中mixin封裝公用方法應(yīng)用方式

    vue 3.x 中mixin封裝公用方法應(yīng)用方式

    這篇文章主要介紹了vue 3.x 中mixin封裝公用方法應(yīng)用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Vue3初探之ref、reactive以及改變數(shù)組的值

    Vue3初探之ref、reactive以及改變數(shù)組的值

    在setup函數(shù)中,可以使用ref函數(shù)和reactive函數(shù)來創(chuàng)建響應(yīng)式數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Vue3初探之ref、reactive以及改變數(shù)組值的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • vue滾動tab跟隨切換效果

    vue滾動tab跟隨切換效果

    這篇文章主要為大家詳細介紹了vue滾動tab跟隨切換效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • vue-router傳參的4種方式超詳細講解

    vue-router傳參的4種方式超詳細講解

    我們在組件切換時經(jīng)常會有傳遞一些數(shù)據(jù)的需求,這樣就涉及到了路由傳參的問題,下面這篇文章主要給大家介紹了關(guān)于vue-router傳參的4種超詳細方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • vue+ElementUI實現(xiàn)訂單頁動態(tài)添加產(chǎn)品數(shù)據(jù)效果實例代碼

    vue+ElementUI實現(xiàn)訂單頁動態(tài)添加產(chǎn)品數(shù)據(jù)效果實例代碼

    本篇文章主要介紹了vue+ElementUI實現(xiàn)訂單頁動態(tài)添加產(chǎn)品效果實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評論

永胜县| 红安县| 宝兴县| 西畴县| 合川市| 象山县| 苗栗县| 大荔县| 双桥区| 时尚| 沛县| 樟树市| 商水县| 神农架林区| 晋城| 兴义市| 上饶县| 桃园市| 内丘县| 手游| 聂荣县| 荆州市| 清徐县| 武胜县| 淄博市| 庄河市| 崇州市| 乌拉特后旗| 武宁县| 融水| 高密市| 福贡县| 祁阳县| 司法| 广昌县| 得荣县| 永康市| 定西市| 盘山县| 潢川县| 鹤庆县|