Uniapp+Vue3基于setup语法实现父页面调子组件方法
温馨提示:
本文最后更新于 2024年09月18日,已超过 126 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
在Uniapp
项目中,使用组合式API的setup
语法能够使代码更加简洁和易于维护。本文将介绍如何使用Vue3
的setup
语法糖,实现父页面与子组件之间的方法调用,能让页面逻辑交互更加流畅、高效。下面将详细介绍操作步骤与示例代码。
背景
在Vue3
中,setup
函数提供了一种更灵活和强大的方式组织组件逻辑。通过组合式API,开发者可以在setup
中直接使用新的React Hooks
风格的API。这对于Uniapp
项目来说同样适用,特别是在处理父子组件通信时。
创建子组件并暴露方法
首先,我们来创建一个简单的子组件。在Uniapp项目的components
目录下,新建一个名为ChildComponent.vue
的文件,并通过defineExpose
暴露一个方法给父组件调用:
<template>
<view> 我是子组件内容 </view>
</template>
<script setup lang="ts">
const testMethod = () => {
console.log('子组件test方法被调用啦...');
};
defineExpose({
testMethod
});
</script>
父组件引用子组件并调用其方法
在父页面的模板部分,使用<ChildComponent>
标签引入子组件,并且通过ref="childComponentRef"
给子组件添加了一个引用。
在<script setup>
块里,先引入ChildComponent
组件,再利用ref
函数创建了一个名为childComponentRef
的响应式引用对象,初始值设为null
。当点击按钮触发invokeChildMethod
函数时,会先判断childComponentRef.value
存在时,才调用子组件暴露出来的 testMethod 方法。
<template>
<view>
<ChildComponent ref="childComponentRef"></ChildComponent>
<button @click="invokeChildMethod">调用子组件方法</button>
</view>
</template>
<script setup lang="ts">
import ChildComponent from '@/components/ChildComponent.vue';
import { ref } from 'vue';
// 定义一个 ref 来保存子组件实例
const childComponentRef = ref(null);
// 调用子组件test方法的函数
const invokeChildMethod = () => {
if (childComponentRef.value) {
childComponentRef.value.testMethod();
}
};
</script>
小结
通过以上步骤,利用Vue3
的setup
语法,我们轻松实现Uniapp
项目中父页面与子组件之间方法的交互调用,这种模式在构建复杂的跨组件交互场景时十分实用,有助于优化项目的整体架构与逻辑流程。
正文到此结束
- 本文标签: uniapp vue3
- 本文链接: https://www.58cto.cn/article/82
- 版权声明: 本文由程序言原创发布, 非商业性可自由转载、引用,但需署名作者且注明文章出处:程序言 》 Uniapp+Vue3基于setup语法实现父页面调子组件方法 - https://www.58cto.cn/article/82