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

vue3?defineExpose的使用及應(yīng)用場景分析

 更新時間:2025年06月20日 09:46:10   作者:我在北京coding  
Vue3中defineExpose用于向父組件暴露子組件的屬性和方法,尤其在script setup語法中,需顯式聲明以實現(xiàn)組件間交互,可控制暴露內(nèi)容,避免過度暴露,同時注意響應(yīng)式數(shù)據(jù)解包與測試影響,本文給大家介紹vue3?defineExpose的使用,感興趣的朋友一起看看吧

子組件

//子組價
<template>
	<view class="box">子組件num值:{{num}}</view>
</template>
<script setup>
	import {ref} from "vue";
	const num=ref(100);
    const fn = ()=>{
     console.log('我是方法');
    }
	defineExpose({
		num,
        fn
	})
</script>

父組件

//父組價
<template>
	<view>
		<child-defineExpose ref="child"></child-defineExpose>
	</view>
</template>
<script setup>
	import {onMounted, ref} from "vue";
	const child=ref(null);
	onMounted(()=>{
		console.log(child.value.num,child.value.fn())
	})
</script>

簡介:

在 Vue 3 的組合式 API 中,defineExpose 是一個用于向父組件暴露內(nèi)部屬性和方法的宏。這在使用 <script setup> 語法時特別有用,因為默認(rèn)情況下,使用 <script setup> 的組件是封閉的,即父組件無法訪問子組件的內(nèi)部狀態(tài)。通過 defineExpose,你可以選擇性地暴露需要被外部訪問的屬性或方法。

關(guān)鍵點說明

  • 僅暴露顯式聲明的屬性

    • 未在 defineExpose 中列出的屬性和方法對父組件不可見。
    • 例如,上面的 message 屬性未被暴露,父組件無法訪問。
  • 類型支持(TypeScript)

可以通過泛型參數(shù)為暴露的屬性和方法提供類型定義:

typescript

defineExpose<{
  count: number;
  increment: () => void;
}>();
  • 與非 <script setup> 組件的區(qū)別

    • 在普通的 export default 組件中,直接通過 this 暴露屬性和方法,無需 defineExpose。

應(yīng)用場景

  • 父組件需要控制子組件的狀態(tài)(如獲取表單組件的值、觸發(fā)子組件的動畫)。
  • 封裝可復(fù)用組件時,明確暴露可被外部調(diào)用的 API。

注意事項

  • 避免過度暴露:僅暴露真正需要被外部訪問的屬性和方法,保持組件的封裝性。
  • 響應(yīng)式問題:暴露的 ref 在父組件中訪問時會自動解包(即直接訪問 .value)。
  • 測試考量:過度依賴組件間的直接引用可能導(dǎo)致測試?yán)щy,優(yōu)先考慮通過事件或狀態(tài)管理共享數(shù)據(jù)。

通過 defineExpose,你可以在保持 Vue 3 組合式 API 簡潔性的同時,靈活地實現(xiàn)組件間的交互。

到此這篇關(guān)于vue3 defineExpose的使用的文章就介紹到這了,更多相關(guān)vue3 defineExpose使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中使用AJAX實現(xiàn)讀取來自XML文件的信息

    vue中使用AJAX實現(xiàn)讀取來自XML文件的信息

    這篇文章主要為大家詳細(xì)介紹了vue中如何使用AJAX實現(xiàn)讀取來自XML文件的信息,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的小伙伴可以參考下
    2023-12-12
  • vue3之向echarts組件傳值的問題分析

    vue3之向echarts組件傳值的問題分析

    這篇文章主要介紹了vue3之向echarts組件傳值的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue?圖片監(jiān)聽鼠標(biāo)滑輪滾動實現(xiàn)圖片縮小放大功能(實現(xiàn)思路)

    Vue?圖片監(jiān)聽鼠標(biāo)滑輪滾動實現(xiàn)圖片縮小放大功能(實現(xiàn)思路)

    其實想要實現(xiàn)功能很簡單,就是在一張圖片上監(jiān)聽鼠標(biāo)滑輪滾動的事件,然后根據(jù)上滾還是下滾實現(xiàn)圖片的縮放,這篇文章主要介紹了Vue?實現(xiàn)圖片監(jiān)聽鼠標(biāo)滑輪滾動實現(xiàn)圖片縮小放大功能,需要的朋友可以參考下
    2023-03-03
  • Element input樹型下拉框的實現(xiàn)代碼

    Element input樹型下拉框的實現(xiàn)代碼

    這篇文章主要介紹了Element input樹型下拉框的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • vue 實現(xiàn)數(shù)字滾動增加效果的實例代碼

    vue 實現(xiàn)數(shù)字滾動增加效果的實例代碼

    最近做了個項目需要做數(shù)字滾動增加的效果,剛開始接到這個項目還真是懵了,后來發(fā)現(xiàn)實現(xiàn)代碼很簡單的,下面小編給大家?guī)砹藇ue 實現(xiàn)數(shù)字滾動增加效果的實例代碼,需要的朋友參考下吧
    2018-07-07
  • Vue如何跨組件傳遞Slot的實現(xiàn)

    Vue如何跨組件傳遞Slot的實現(xiàn)

    這篇文章主要介紹了Vue如何跨組件傳遞Slot的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • element上傳組件循環(huán)引用及簡單時間倒計時的實現(xiàn)

    element上傳組件循環(huán)引用及簡單時間倒計時的實現(xiàn)

    這篇文章主要介紹了element上傳組件循環(huán)引用及簡單時間倒計時的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • vue實現(xiàn)簡潔文件上傳進(jìn)度條功能

    vue實現(xiàn)簡潔文件上傳進(jìn)度條功能

    這篇文章主要介紹了vue實現(xiàn)簡潔文件上傳進(jìn)度條功能,實現(xiàn)原理是通過performance.now()獲取動畫的時間戳,用于創(chuàng)建流暢的動畫,結(jié)合示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • vue 在服務(wù)器端直接修改請求的接口地址

    vue 在服務(wù)器端直接修改請求的接口地址

    這篇文章主要介紹了vue 在服務(wù)器端直接修改請求的接口地址的方法,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2020-12-12
  • 基于vue實現(xiàn)分頁組件的示例代碼

    基于vue實現(xiàn)分頁組件的示例代碼

    分頁組件是一種用戶界面元素,用于在長列表或數(shù)據(jù)集中分割內(nèi)容,分頁組件是每個開發(fā)人員必須掌握的一個組件,廣泛應(yīng)用在各個場所,用以用戶方便閱讀等,本文就給大家介紹一下如何基于vue寫出的分頁組件,需要的朋友可以參考下
    2023-08-08

最新評論

太白县| 拜城县| 广平县| 伊宁市| 马山县| 太白县| 丽江市| 江永县| 永嘉县| 婺源县| 平谷区| 江达县| 蒙山县| 溆浦县| 定州市| 隆子县| 宁城县| 江川县| 博客| 玉屏| 崇信县| 揭西县| 郎溪县| 象山县| 兴仁县| 苏尼特左旗| 乌拉特前旗| 沂水县| 乌海市| 宜宾市| 宁河县| 玛曲县| 唐山市| 广平县| 长垣县| 鄂温| 海城市| 江北区| 噶尔县| 镶黄旗| 酉阳|