vue3 setup中父组件通过Ref调用子组件的方法(实例代码)

 更新时间:2022年08月17日 09:53:17   作者:虎落鹰背  
这篇文章主要介绍了vue3 setup中父组件通过Ref调用子组件的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

在setup()钩子函数中调用

父组件

<template>
	<div>
        我是父组件
        <children ref="childrenRef" />
        <button @click="handleChildren">触发子组件</button>
    </div>
</template>

<script lang="ts">
    import { ref, defineComponent } from 'vue'
    import Children from './components/Children.vue';
    export default defineComponent({
    	components: { Children }
        setup() {
            // ref的泛型除了指定any外 还可以指定<InstanceType<typeof Children>>
            const childrenRef = ref<any>();
            const handleChildren = () => childrenRef.value.isChildren();
            return {
                childrenRef,
                handleChildren
            }
        },
    })
</script>

子组件:

<template>
<div>
    我是子组件
</div>
</template>

<script lang="ts">
    import { defineComponent } from 'vue'

    export default defineComponent({
        setup() {
            const isChildren = () => {
                console.log("我是子组件");
            }
            return {
                isChildren,
            }
        }
    })
</script>

如果是在setup()钩子函数中使用,父组件通过ref获取到子组件实例后,直接.value.函数名即可调用子组件所定义的函数。其中ref的泛型可以指定anyInstanceType<typeof Children>

在<srcipt setup>中调用

父组件

<template>
<div>
    我是子组件
</div>
</template>

<script lang="ts">
    import { defineComponent } from 'vue'

    export default defineComponent({
        setup() {
            const isChildren = () => {
                console.log("我是子组件");
            }
            return {
                isChildren,
            }
        }
    })
</script>

子组件

<template>
    <div>
        我是子组件
    </div>
</template>

<script setup lang="ts">
    import { defineExpose } from 'vue';
    const isChildren = () => {
        console.log("我是子组件的第一个方法");
    }
    const isChildren2 = () => {
        console.log("我是子组件的第二个方法");
    }
    defineExpose({ isChildren, isChildren2 })
</script>

<srcipt setup>中调用和setup()钩子函数中调用不同的是:子组件中要通过defineExpose将方法暴露给父组件。

📃官网说明地址

到此这篇关于vue3 setup中父组件通过Ref调用子组件的方法的文章就介绍到这了,更多相关vue3 setup父组件调用子组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue.js+HighCharts实现动态请求展示时序数据

    Vue.js+HighCharts实现动态请求展示时序数据

    这篇文章主要为大家详细介绍了Vue.js+HighCharts实现动态请求展示时序数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • vue项目运行超详细图解

    vue项目运行超详细图解

    这篇文章主要给大家介绍了关于vue项目运行的相关资料,文中通过图文介绍的非常详细,对大家学习或者使用vue具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • vue3.2 reactive函数问题小结

    vue3.2 reactive函数问题小结

    reactive用来包装一个对象,使其每个对象属性都具有响应性(也就是深层次响应式),这篇文章主要介绍了vue3.2 reactive函数注意点及问题小结,需要的朋友可以参考下
    2022-12-12
  • 浅析vue.js数组的变异方法

    浅析vue.js数组的变异方法

    本篇文章给大家分享了vue.js数组的变异方法的相关内容,有兴趣的朋友跟着学习参考下。
    2018-06-06
  • Vue数据绑定实例写法

    Vue数据绑定实例写法

    在本篇文章里小编给大家整理的是关于Vue数据绑定实例写法以及相关知识点,需要的朋友们学习下。
    2019-08-08
  • Vue实现省市区三级联动el-select组件的示例代码

    Vue实现省市区三级联动el-select组件的示例代码

    这篇文章主要为大家详细介绍了Vue实现省市区三级联动el-select组件的方法,文中的示例代码讲解详细,具有一定的借鉴价值,需要的的可以参考一下
    2023-02-02
  • vue实现导出Word文件(数据流方式)

    vue实现导出Word文件(数据流方式)

    这篇文章主要介绍了vue实现导出Word文件(数据流方式),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • nuxt 页面路由配置,主页轮播组件开发操作

    nuxt 页面路由配置,主页轮播组件开发操作

    这篇文章主要介绍了nuxt 页面路由配置,主页轮播组件开发操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Element-ui el-tree新增和删除节点后如何刷新tree的实例

    Element-ui el-tree新增和删除节点后如何刷新tree的实例

    这篇文章主要介绍了Element-ui el-tree新增和删除节点后如何刷新tree的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • uniapp仿微信聊天界面效果实例(vue3组合式版本)

    uniapp仿微信聊天界面效果实例(vue3组合式版本)

    这篇文章主要介绍了uniapp仿微信聊天界面的相关资料,这里提及了一个时间工具包timeMethod.js,该工具包可能提供了一系列时间处理的功能,如格式化日期、计算时间差等,以便在消息格式中正确展示时间信息,使用此类工具包可以大大提高开发效率,需要的朋友可以参考下
    2024-10-10

最新评论