uniapp 使用 defineExpose 暴露子组件属性和方法

1.components  定义count数值,str字符串,unpdateCount函数
<script setup>
    defineExpose({
	count,
	str:"咸虾米",
	updateCount
})
</script>
2.pages 
<template>
	<view class="layout">
		<demo-child ref="child"></demo-child>
		<view>----</view>
		<button @click="update">点击修改子值</button>
	</view>
</template>

<script setup>
	import {
		onMounted,
		ref
	} from "vue";

	const child = ref(null);
	const update = function() {
		child.value.updateCount()
		console.log(child.value.str);
	}


	onMounted(() => {
		console.log(child.value);
	})
</script>

<style lang="scss" scoped>

</style>

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uniapp中,组件可以使用组件方法。可以通过在组件中触发自定义事件来调用父组件方法。在父组件中,需要在methods区域定义对应的方法。在组件中,可以使用`@click`等事件监听器来触发自定义事件,并在事件回调函数中调用父组件方法。具体步骤如下: 1. 在父组件中,定义需要被组件调用的方法,比如我们定义了一个名为`back`的方法。 2. 在组件中,使用`@click`等事件监听器来触发自定义事件,比如我们定义了一个点击事件`childBackHome`。 3. 在组件的点击事件回调函数中,使用`$emit`方法来触发自定义事件,并将父组件方法名作为参数传递给`$emit`方法。 4. 在父组件中,通过`@自定义事件名`的方式来监听组件触发的自定义事件,并在方法中调用对应的父组件方法。 这样就实现了组件使用组件方法的功能。具体代码示例如下: 在父组件中: ```html <template> <div> <child-component @childBackHome="back"></child-component> </div> </template> <script> export default { methods: { back() { // 在这里定义需要被组件调用的方法 // 可以在这里编写相应的逻辑代码 } } } </script> ``` 在组件中: ```html <template> <div @click="childBackHome"></div> </template> <script> export default { methods: { childBackHome() { // 在这里触发自定义事件,将父组件方法名作为参数传递给$emit方法 this.$emit('childBackHome'); } } } </script> ``` 通过以上的步骤,组件就可以成功调用父组件方法了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [uni-app 组件调用父组件方法(vue同样适用)](https://blog.csdn.net/weixin_40816738/article/details/125596692)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值