vue3父组件使用子组件方法

devtools/2024/10/11 7:33:37/

问题

关于父组件调用子组件方法是比较常见的情况,vue2中使用比较简单,那么vue3 中如何使用呢?
想要的效果:
在这里插入图片描述

vue2 中调用子组件方法

先看下vue2中如何调用的,代码如下:

javascript">// child.vue
<template><div style="margin-bottom:10px">子组件中的数字:{{ count }}</div>
</template><script>
export default {data(){return {count:0}},methods:{add(){this.count += 1}}
}
</script>
javascript">// 父组件
<template><child ref="childRef"/><el-button type="primary" @click="add">父组件中按钮(点击加1)</el-button>
</template><script>
import child from './child.vue'
export default {components:{child},data(){return {}},methods:{add(){this.$refs.childRef.add()}}
}
</script>

vue3 setup中调用子组件方法

使用 <script setup> 的组件是默认关闭的——即通过模板引用或者 $parent 链获取到的组件的公开实例,不会暴露任何在 <script setup> 中声明的绑定。可以通过 defineExpose 编译器宏来显式指定在 <script setup> 组件中要暴露出去的属性
——Vue.js官网

示例如下:

javascript">// parent.vue
<template><child ref="childRef"/><el-button type="primary" @click="add">父组件中按钮(点击加1)</el-button>
</template><script setup>import { ref } from 'vue'import child from './child.vue'const childRef = ref(null)function add(){childRef.value.add()}
</script>
javascript">// child.vue
<template><div style="margin-bottom:10px">子组件中的数字:{{ count }}</div>
</template><script setup>import { ref } from 'vue'const count = ref(0)function add(){count.value += 1}
</script>

此时,若子组件使用如上写法则会报错:
在这里插入图片描述

解决办法:在子组件中使用defineExpose 暴露出add()方法

javascript"><template><div style="margin-bottom:10px">子组件中的数字:{{ count }}</div>
</template><script setup>import { ref } from 'vue'defineExpose({ add })  // 非常重要的一行, 暴露子组件方法const count = ref(0)function add(){count.value += 1}
</script>

http://www.ppmy.cn/devtools/9551.html

相关文章

Vue2之组件通信(爆肝)

大家有什么想看的可以在评论区留言&#xff0c;我尽量满足&#xff0c;感谢大家&#xff01; 组件通信是vue中一个非常重要的内容&#xff0c;我们需要掌握好组件通信&#xff0c;那么让我为大家介绍几种组件通信的方式吧&#xff01; 一、props 这是父传子的方式&#xff0…

在React中的函数组件和类组件——附带示例的对比

在React中&#xff0c;创建组件有两种主要方式&#xff1a;函数组件和类组件。每种方式都有自己的语法和用例&#xff0c;尽管随着React Hooks的引入&#xff0c;它们之间的差距已经显著缩小。但选择适当的组件类型对于构建高效和可维护的React应用程序仍然非常关键。 在本文中…

《王者荣耀》游戏攻略:角色排行榜——墨子

作为天蝎座黄金圣斗士&#xff0c;墨子以他的正义感和荣誉感闻名&#xff0c;一直站在正义的一方&#xff0c;忠于女神雅典娜。他的猩红毒针象征着审判和死亡&#xff0c;而他所施加的十五针“安达里士”更是生命终结的预兆。在冥王再次发动战争之际&#xff0c;墨子追随雅典娜…

Java入门四步走

1. 简单的入门语法&#xff1a; 1.1 数据类型&#xff1a; 基本数据类型&#xff1a; 整数类型 —— byte、short、int、long, 浮点类型 —— float、double 字符类型 —— char 布尔类型 —— boolean 引用数据类型&#xff1a; 接口&#xff08;interface&#xff09;、数…

ORACLE错误提示概述

OceanBase分布式数据库-海量数据 笔笔算数 保存起来方便自己查看错误代码。 ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程…

37-4 用Python编写SQL注入的基于错误报告的POC

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、SQL 注入基础 SQL注入是一种常见的应用程序安全漏洞,发生在应用程序与数据库层之间。简而言之,它是通过在输入的字符串中注入SQL指令来实现的,如果程序设计不良未进行充分…

SSM整合后的一个及其简单的商城

shopping-cart SSM整合后的一个及其简单的商城&#xff0c;首页数据是模拟的&#xff0c;主要测试购物车模块 启动 git clone https://github.com/0saber0/shopping-cart创建数据库&#xff1a;shopping导入建表脚本&#xff1a;shopping.sql修改db.properties部署和启动项目&…

Python的pytest框架(3)--fixtrue固件

fixture是pytest的一项核心特性&#xff0c;它提供了一种组织和管理测试依赖项&#xff08;如初始化环境、创建资源、清理操作等&#xff09;的有效机制。下面将对fixture进行深入讲解&#xff0c;包括其基本概念、作用、使用方式、特性以及高级应用&#xff1a; 目录 一、基…