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

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

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

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

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

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

彈窗組件的編寫

<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> 的組件是默認(rèn)私有的:
// 一個(gè)父組件無法訪問到一個(gè)使用了 <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'

// 聲明一個(gè) ref 來存放該元素的引用
// 必須和模板里的 ref 同名
// 為了獲取 MyDialog 的類型,我們首先需要通過 typeof 得到其類型,再使用 TypeScript 內(nèi)置的 InstanceType 工具類型來獲取其實(shí)例類型
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中一個(gè)完整的自定義彈窗就完成了,具體的寫法相比Vue2還是有些差別的。

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    這篇文章主要介紹了vue-cli3開發(fā)Chrome插件實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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)用方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    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跟隨切換效果

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

    vue-router傳參的4種方式超詳細(xì)講解

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

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

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

最新評論

密云县| 抚州市| 军事| 刚察县| 贵溪市| 清新县| 彝良县| 陵水| 汕头市| 梁平县| 平顶山市| 霍州市| 天气| 凉城县| 出国| 垫江县| 德清县| 益阳市| 苗栗市| 安国市| 潼关县| 革吉县| 泸水县| 卫辉市| 正镶白旗| 石棉县| 肥东县| 托里县| 宜城市| 柳林县| 丹凤县| 南岸区| 北川| 鹰潭市| 白河县| 抚远县| 泸水县| 永吉县| 青岛市| 瑞丽市| 晋州市|