vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue3 defineExpose使用

vue3 defineExpose的使用及应用场景分析

作者:我在北京coding

Vue3中defineExpose用于向父组件暴露子组件的属性和方法,尤其在script setup语法中,需显式声明以实现组件间交互,可控制暴露内容,避免过度暴露,同时注意响应式数据解包与测试影响,本文给大家介绍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 是一个用于向父组件暴露内部属性和方法的宏。这在使用 <script setup> 语法时特别有用,因为默认情况下,使用 <script setup> 的组件是封闭的,即父组件无法访问子组件的内部状态。通过 defineExpose,你可以选择性地暴露需要被外部访问的属性或方法。

关键点说明

可以通过泛型参数为暴露的属性和方法提供类型定义:

typescript

defineExpose<{
  count: number;
  increment: () => void;
}>();

应用场景

注意事项

通过 defineExpose,你可以在保持 Vue 3 组合式 API 简洁性的同时,灵活地实现组件间的交互。

到此这篇关于vue3 defineExpose的使用的文章就介绍到这了,更多相关vue3 defineExpose使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文