VUE3父子组件传参

embedded/2024/9/23 10:13:41/

defineProps和defineEmits的使用场景‌

  • ‌父组件向子组件传递数据‌:子组件可以通过defineProps接收来自父组件的数据,并在子组件的模板中使用这些数据。‌2
  • ‌子组件向父组件发送事件‌:子组件可以通过defineEmits触发事件,并将数据发送回父组件,父组件可以监听这些事件并作出响应。‌

defineExpose

defineExpose 是 Vue 3 的 Composition API 中一个新的实用函数,用于在<script setup>语法下显式暴露组件的公共属性和方法,这在处理子组件时特别有用,允许父组件访问子组件的特定属性或方法。在 Vue 3 中,当我们使用defineExpose

父组件:

javascript"><com-dialog ref="drawerCreateModel" :title="createShow.title" :drawerType="createShow.drawerType" :data="createShow.data" @dialogVisible="closeCreat"/>
//引入子组件
import comDialog from './page/comDialog.vue'
//定义ref变量
const drawerCreateModel = ref()
//定义需要传给子组件的变量
const createShow = reactive({visible: false,data: {},title: '',drawerType: '',
})//通过ref调用子组件的cancel()方法
const closeModelCreat = () => {drawerCreateModel.value.cancel()
}
//当子组件的visible更改时,该方法被触发
const closeCreat = (newValue) => {createShow.visible = newValue
}

子组件:

javascript">//接收来自父组件的参数
const props = defineProps({data: {type: Object || Array,default: () => {return {}}},title: {type: String,default: ''},drawerType: {type: String,default: ''},
})
//定义父组件用@dialogVisible传过来的dialogVisible变量
const $emit = defineEmits(['dialogVisible'])
const cancel = () => {//通过$emit更新visible,从而触发父组件的closeCreat()方法$emit('dialogVisible', false)
}
//向父组件暴露cancel()方法
defineExpose({cancel
})


http://www.ppmy.cn/embedded/108007.html

相关文章

fastadmin 清除插件缓存报错

Argument 1 passed to Symfony\Component\VarExporter\VarExporter::export() must be an instance of Symfony\Component\VarExporter\mixed, array given, called in F:\work\awebsite\oeob\vendor\karsonzhang\fastadmin-addons\src\addons\Service.php on line 404 我用的…

SpringCloud之Sleuth(Micrometer)+ZipKin分布式链路追踪

&#xff08;学习笔记&#xff09; 1、分布式链路追踪概述 问题&#xff1a;在微服务框架中&#xff0c;一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果&#xff0c;每一个前段请求都会形成一条复杂的分布式服务调用链路&#xf…

基于Openjdk容器打包运行jar程序

文章目录 应用场景基于Openjdk容器打包运行jar程序1.编译项目成jar包2.构建Dockerfile文件精简版-含jar包精简版-不含jar包带注释版-含jar包 3.编译Dockerfile成镜像。4.运行镜像&#xff1a; 应用场景 部署多版本jdk的应用程序。 基于Openjdk容器打包运行jar程序 1.编译项目…

C++学习笔记----6、内存管理(四)---- 通常的内存陷阱(1)

使用new/delete/new[]/delete[]处理动态内存以及底层内存操作是非常容易出错的。对于引起内存有关的问题还特别难以定位。每一个内存泄露与错误指针都有其细微差别。没有能够解决内存问题的银弹。我们就来谈一谈一些通常问题以及能够检测和解决的一些工具。 1、少分配了数据空…

PDF文档处理技巧:如何编辑 PDF文档

如果没有合适的工具&#xff0c;PDF 编辑起来会很棘手。虽然有些工具价格昂贵&#xff0c;但一些免费工具也可以完成这项工作。以下是您需要获得和了解的内容。 如果您曾经尝试编辑可移植文档格式文件 (PDF)&#xff0c;那么您几乎肯定会发现它比编辑 Microsoft Word 或 Googl…

Linux云计算学习笔记11 (计划任务)

一.基本概念 在Linux操作系统中&#xff0c;除了用户即时执行的命令操作以外&#xff0c;还可以配置在指定的时间、指定的日期执行预先计划好的系统管理任务&#xff08;如定期备份、定期采集监测数据&#xff09;。试想一下&#xff0c;如果系统要求在业务不那么繁忙的半夜进行…

[pytorch] --- 神经网络的基本骨架-nn.Module的使用

1 nn.Module 1.1 nn.Module基本使用 在PyTorch中&#xff0c;nn.Module 类扮演着核心角色&#xff0c;它是构建任何自定义神经网络层、复杂模块或完整神经网络架构的基础构建块。通过继承 nn.Module 并在其子类中定义模型结构和前向传播逻辑&#xff08;forward() 方法&#…

spring boot项目中配置文件配置mapper*.xml文件路径无效的问题排查记录

常见的原因在此就不描述了&#xff0c;导致此次自定义mapper无法被绑定的原因在于&#xff1a;项目中定义了sqlSessionFactoryBean&#xff0c;但这个Bean里只对dataSource设置了&#xff0c;并未设置MapperLocations&#xff0c;导致在application.properties中虽配置了mybati…