当前位置: 首页 > news >正文

vue3父子组件相互调用方法详解

vue3父子组件相互调用方法详解

  • 1、前言
  • 2、父组件调用子组件方法
    • 2.1 子组件Child.vue
    • 2.2 父组件Father.vue
  • 3、子组件调用父组件方法
    • 3.1 父组件Father.vue
    • 3.2 子组件Child.vue

1、前言

在vue3项目开发中,我们常常会遇到父子组件相互调用的场景,下面以setup语法糖格式详细聊聊父子组件那些事儿。

2、父组件调用子组件方法

2.1 子组件Child.vue

<template><div>我是子组件</div>
</template><script setup>
// 第一步:定义子组件的方法
const sayHello = (value) => {console.log(value)
}
// 第二部:暴露方法
defineExpose({sayHello 
})
</script>

2.2 父组件Father.vue

<template><button @click="getChild">触发子组件方法</button><child ref="childRef" />
</template>
<script setup>
import Child from './components/child.vue'
// 定义与 ref 同名变量
const childRef = ref(null)
const getChild = () => {// 调用子组件的方法或者变量,通过valuechildRef.value.hello("hello world!");
}
</script>

3、子组件调用父组件方法

3.1 父组件Father.vue

<template><child @sayHello="handle" />
</template><script setup>import Child from './components/child.vue';const handle = () => {console.log('子组件调用了父组件的方法')}
</script>

3.2 子组件Child.vue

<template><view>我是子组件</view><button @click="sayHello">调用父组件的方法</button>
</template><script setup>const emit = defineEmits(["sayHello"])const sayHello = () => {emit('Hello World')}
</script>
http://www.lryc.cn/news/132535.html

相关文章:

  • Java之接口
  • QT学习笔记-QT5.15编译及安装谷歌拼音输入法(QtInputMethod_GooglePinyin)
  • python 使用 pdf2image 库将PDF转换为图片
  • kubernetes(namespace、pod、deployment、service、ingress)
  • 深度学习loss变为nan的问题
  • 音视频 ffplay命令-主要选项
  • 深入浅出Pytorch函数——torch.nn.init.dirac_
  • [Go版]算法通关村第十三关青铜——数字数学问题之统计问题、溢出问题、进制问题
  • GPT-4一纸重洗:从97.6%降至2.4%的巨大挑战
  • 大数据Flink学习圣经:一本书实现大数据Flink自由
  • 什么是微服务?
  • 【C++入门到精通】C++入门 —— 容器适配器、stack和queue(STL)
  • 系统架构设计专业技能 · 软件工程之需求工程
  • 2023国赛数学建模E题思路模型代码 高教社杯
  • Baumer工业相机堡盟工业相机如何通过BGAPISDK设置相机的Bufferlist序列(C++)
  • 从 Ansible Galaxy 使用角色
  • ROS与STM32通信(二)-pyserial
  • [oneAPI] 使用Bert进行中文文本分类
  • 【数据治理】什么是数据库归档
  • AI代码补全 案例 - 阿里云智能编码插件Cosy
  • 【Linux】进程信号篇Ⅰ:信号的产生(signal、kill、raise、abort、alarm)、信号的保存(core dump)
  • 漏洞指北-VulFocus靶场专栏-中级03
  • 【leetcode 力扣刷题】数组交集(数组、set、map都可实现哈希表)
  • MySQL 8.0.31 登录提示caching_sha2_password问题解决方法
  • [Google] DeepMind Gemini: 新一代LLM结合AlphaGo技术将力压 GPT-4|未来 AI 领域的新巨头
  • Maven高级
  • 【视觉SLAM入门】5.2. 2D-3D PNP 3D-3D ICP BA非线性优化方法 数学方法SVD DLT
  • 人脸老化预测(Python)
  • AWS SDK 3.x for .NET Framework 4.0 可行性测试
  • 两个list。如何使用流的写法将一个list中的对象中的某些属性根据另外一个list中的属性值赋值进去?