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

【vue3】vue3接收props以及emit的用法

技术:vue3.2.40
UI框架:arco-design 2.44.7
css技术:less 4.1.3

实现:子组件接收props以及通过emit方法传值父组件

vue3使用的组合式API,我这里使用的是defineComponent

1.父页面调用子组件

<template><div class="dataManagerMentPage"><a-table :columns="fieldColumns" :data="tableData" :scrollbar="true"><template #category="{ record }">{{ handModelType(record.category) }}</template><template #optional="{ column, record, rowIndex }"><a-button @click="handDetails(column, record, rowIndex)" type="text">详情</a-button></template></a-table><modelDetails:modalForm="modalForm"@handleCancel="handleCancel"@handleModalOk="handleModalOk"></modelDetails></div>
</template><script lang="ts">import {defineComponent,reactive,toRefs,onUnmounted,onMounted,} from 'vue';import modelDetails from './components/modelDetails.vue';export default defineComponent({name: 'DataManagerMent',components: {modelDetails,},setup() {interface IDataManagerMant {// table字段名fieldColumns: any[];// table数据源tableData: any[];modalForm: {visible: boolean;title: string;data: object;};}const dataManagerMant = () => ({modalForm: {visible: false,title: '',data: null,},// table字段名fieldColumns: [{title: '设备ID',dataIndex: 'id',ellipsis: true,tooltip: true,},{title: '设备名称',dataIndex: 'deviceName',ellipsis: true,tooltip: true,},{title: '设备序列号',dataIndex: 'deviceOuterId',ellipsis: true,tooltip: true,},{title: '设备类型',dataIndex: 'category',slotName: 'category',},{title: '厂商',dataIndex: 'manufacturer',ellipsis: true,tooltip: true,},{title: '绑定模型',dataIndex: 'relatedModelId',},{title: '创建时间',dataIndex: 'createDate',},{title: '操作',dataIndex: 'optional',slotName: 'optional',align: 'center',},],// table数据源tableData: [],});const state: IDataManagerMant = reactive(dataManagerMant());// 查看详情页function handDetails(column: any, record: any, rowIndex: any) {state.modalForm = {visible: true,title: record.id,data: record,};}// 判断设备类型function handModelType(category: string) {let name = '';switch (category) {case 'VEHICLE':name = '车辆';break;case 'VIDEO':name = '视频';break;case 'COMMON':name = '默认';break;default:name = '默认';break;}return name;}// 关闭弹窗function handleCancel() {state.modalForm = {visible: false,title: '',data: {},};}// 弹窗保存按钮事件function handleModalOk() {handleCancel();}return {...toRefs(state),handDetails,handleCancel,handleModalOk,handModelType,};},});
</script><style lang="less" scoped>.dataManagerMentPage {width: 100%;height: 100%;margin: 0;padding: 0;}
</style>

2.子组件

<template><a-modalwidth="50%":visible="modalForm.visible"@ok="handleOk"@cancel="handleCancel":title="'数据详情-' + modalForm.title"okText="保存"cancelText="取消"title-align="start":okLoading="loading"><a-spin :loading="loading" tip="正在获取数据中..."><div class="modelDetailsPage"></div></a-spin></a-modal>
</template><script lang="ts">import {defineComponent,reactive,toRefs,onUnmounted,onMounted,watch,} from 'vue';import { Message } from '@arco-design/web-vue';export default defineComponent({name: 'ModelDetails',props: {// 父级的modalForm: {visible: {type: Boolean,default: false,},title: {type: String,default: '',},},},setup(props, { emit }) {interface IDataManagerMant {loading: boolean;}const dataManagerMant = () => ({loading: false,});const state: IDataManagerMant = reactive(dataManagerMant());// 保存按钮事件function handleOk() {state.loading = true;Message.success('保存成功!');emit('handleModalOk');state.loading = false;}// 返回按钮事件function handleCancel() {emit('handleCancel');}watch(() => props.modalForm,(newV, oldV) => {if (newV.visible) {// 这里可以写处理化执行的函数方法=}});return {...toRefs(state),handleOk,handleCancel,};},});
</script>
<style lang="less" scoped>.modelDetailsPage {width: 100%;height: 100%;padding: 0 12px;}
</style>

注意点:

1.setup里如果需要接收props和使用emit,只需要带参数 setup(props, { emit })
2.setup里面只需要带emit(‘handleCancel’),不需要带$$符号,这个符号是vue2的写法
3.watch监听的方法,放在setup里面

相关文章:

【vue3】vue3接收props以及emit的用法

技术&#xff1a;vue3.2.40 UI框架&#xff1a;arco-design 2.44.7 css技术&#xff1a;less 4.1.3 实现&#xff1a;子组件接收props以及通过emit方法传值父组件 vue3使用的组合式API&#xff0c;我这里使用的是defineComponent 1.父页面调用子组件 <template><d…...

【Lua学习笔记】Lua入门

文章目录 Lua变量数据类型变量声明其他表示 Lua语法判断逻辑判断&#xff08;Lua很特殊&#xff0c;这个比较重要&#xff09;短路判断 ifif else 循环whileforrepeat 迭代器泛型for迭代器无状态迭代器多状态的迭代器 Lua函数select方法 数组字符索引_G &#xff08;不是教程&a…...

LLM Data Pipelines: 解析大语言模型训练数据集处理的复杂流程

编者按&#xff1a;在训练大语言模型的过程中,构建高质量的训练数据集是非常关键的一步&#xff0c;但关于构建大模型训练所需数据集的通用数据处理流程&#xff08;Data pipelines)的相关资料极为稀少。 本文主要介绍了基于Common Crawl数据集的数据处理流程。首先,文章概述了…...

如何使用postman判断返回结果是否正确

针对一个接口&#xff0c;我们在知道参数以及参数对应的结果时&#xff0c;可以通过postman进行判断&#xff0c;验证返回数据是否与预期数据相等。这样可以使我们的接口测试更加的方便简洁。 1、准备数据。 postman可以接受的文件格式如图所示&#xff0c;一般来说可以将我们…...

A General framework for Prompt

你已经知道了 Prompt 可以具有一些通用的结构&#xff0c;比如一个简单的Prompt 结构: 能否帮我为我的课程 TAI自动化&#xff0c;设计一套数字营销策略? Action 我们的目标是激发目标受众一一那些希望利用人工智能简化工作流的人们的兴趣&#xff0c;并提高课程的知名度。 G…...

使用python将PDF转word

实现功能&#xff0c;将程序所在当前路径下的所有PDF文件转化为word import os from pdf2docx import Converter# 获取当前路径 current_path os.getcwd()# 遍历当前路径下的所有文件和文件夹 for file_name in os.listdir(current_path):# 检查文件是否为 PDF 文件if file_n…...

CMU 15-445 -- Logging Schemes - 17

CMU 15-445 -- Logging Schemes - 17 引言IndexFailure ClassificationTransaction FailuresSystem FailuresStorage Media Failures Buffer Pool PoliciesShadow Paging: No-Steal ForceWrite-Ahead Log (WAL): Steal No-ForceLogging SchemesCheckpoints小结 引言 本系列为…...

逻辑回归分析实战(根据鸢尾花的性质预测鸢尾花类别)

紧接着上过一个线性回归模型&#xff08;一元线性回归模型实战&#xff09; 一元线性回归模型和逻辑回归模型是统计学中常见的两种回归模型&#xff0c;它们有以下几点不同之处&#xff1a; 1. 目标变量类型&#xff1a;一元线性回归模型适用于连续型目标变量&#xff0c;即预测…...

【每日一题】2050. 并行课程 III

【每日一题】2050. 并行课程 III 2050. 并行课程 III题目描述解题思路 2050. 并行课程 III 题目描述 给你一个整数 n &#xff0c;表示有 n 节课&#xff0c;课程编号从 1 到 n 。同时给你一个二维整数数组 relations &#xff0c;其中 relations[j] [prevCoursej, nextCour…...

【kubernetes系列】kubernetes之使用kubeadm搭建高可用集群

概述 目前来说&#xff0c;kubernetes集群搭建的方式很多&#xff0c;选择一个稳定的适合自己的很重要。目前使用kubeadm方式搭建k8s集群还是很常见的&#xff0c;使用kubeadm搭建可以很简单差不多两条命令就行&#xff0c;也可以稍微复杂一点做一些基础优化&#xff0c;本文将…...

SpringBoot 快速实现 IP 地址解析

在spring boot 项目中获取请求的ip与详细地址&#xff0c;很多网站app 中都已经新增了ip 地址显示&#xff0c;大家也可以用在自己的开发中&#xff0c;显得更高级。 引入 如果使用本地ip 解析的话&#xff0c;我们将会借助ip2region&#xff0c;该项目维护了一份较为详细的本…...

【云原生】Docker镜像的创建,Dockerfile

一、Docker镜像的创建 创建镜像有三种方法&#xff0c;分别为【基于已有镜像创建】、【基于本地模板创建】以及【基于Dockerfile创建】。 1.基于现有镜像创建 &#xff08;1&#xff09;首先启动一个镜像&#xff0c;在容器里做修改docker run -it --name web centos:7 /bin/…...

了解Unity编辑器之组件篇Event(七)

Event&#xff1a;用于在对象之间进行通信和交互的机制。它可以帮助你实现触发和响应特定动作或状态的逻辑一、Event System&#xff1a;用于处理 UI 事件的系统组件 First Selected 属性&#xff1a;定义了在场景加载或 UI 激活时&#xff0c;哪个 UI 元素将成为首选的选中元素…...

bash: 睡觉的冒号;是不是两个点?

文章目录 简介躺着的冒号是两个点正常冒号总结简介 在bash里冒号和躺着的冒号的用法不一样一定要注意别用错。 躺着的冒号是两个点 难道正常的不是两个点)的作用: A sequence expression takes the form {x…y[…incr]}, where x and y are either integers or single cha…...

揭秘爱数AnyShare认知助手:大模型深度产品化,深化人与机器的“分工协作”

文 | 智能相对论 作者 | 叶远风 大模型竞逐日趋白热化&#xff0c;百模大战热闹非凡。 但是&#xff0c;对产业主体或者普通看客而言&#xff0c;大模型究竟如何改变一线业务、实现工作方式的变革甚至组织转型&#xff0c;很多人并没有具象化的认知。 技术厉害、产品牛&…...

ad+硬件每日学习十个知识点(10)23.7.21

文章目录 1.verilog新建文件夹结构2.怎么在quartus2里新建工程?3.如果在quartus2新建工程后,发现器件选择错误,怎么修改?4.在quartus2新建工程后,怎么新建文件编写程序?4.在quartus2新建工程后,怎么添加已有文件编写程序?5.quartus2怎么调节字体?6.刚下载完quartus2的…...

RCU 使用及机制源码的一些分析

》内核新视界文章汇总《 文章目录 1 介绍2 使用方法2.1 经典 RCU2.2 不可抢占RCU2.3 加速版不可抢占RCU2.4 链表操作的RCU版本2.5 slab 缓存支持RCU 3 源码与实现机制的简单分析3.1 数据结构3.2 不可抢占RCU3.3 加速版不可抢占RCU3.4 可抢占RCU3.5 报告禁止状态3.6 宽限期的开…...

【第二套】Java面试题

第二套&#xff1a; 一、JavaScript前端开发 1、下列的代码输出什么&#xff1f; var y 1; if(function f(){}){y typeof f; } console.log(y);正确的答案应该是 1undefined。 JavaScript中if语句求值其实使用eval函数&#xff0c;eval(function f(){}) 返回 function f()…...

CSS3 实现边框圆角渐变色渐变文字效果

.boder-txt {width: 80px;height: 30px; line-height: 30px;padding: 5px;text-align: center;border-radius: 10px;border: 6rpx solid transparent;background-clip: padding-box, border-box;background-origin: padding-box, border-box;/*第一个linear-gradient表示内填充…...

第二天 kali代理配置

文章目录 环境一、虚拟机网络模式&#xff08;1&#xff09;NAT&#xff08;2&#xff09;NAT模式&#xff08;3&#xff09;桥接模式&#xff08;4&#xff09;仅主机模式&#xff08;5&#xff09;总结 二、配置代理&#xff08;桥接模式&#xff09;1、基础设置2、虚拟机浏览…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

【JavaEE】万字详解HTTP协议

HTTP是什么&#xff1f;-----互联网的“快递小哥” 想象我们正在网上购物&#xff1a;打开淘宝APP&#xff0c;搜索“蓝牙耳机”&#xff0c;点击商品图片&#xff0c;然后下单付款。这一系列操作背后&#xff0c;其实有一个看不见的“快递小哥”在帮我们传递信息&#xff0c;…...

RabbitMQ work模型

Work 模型是 RabbitMQ 最基础的消息处理模式&#xff0c;核心思想是 ​​多个消费者竞争消费同一个队列中的消息​​&#xff0c;适用于任务分发和负载均衡场景。同一个消息只会被一个消费者处理。 当一个消息队列绑定了多个消费者&#xff0c;每个消息消费的个数都是平摊的&a…...

Steam爬取相关游戏评测

## 因为是第一次爬取Steam。所以作为一次记录发出&#xff1b;有所错误欢迎指出。 无时间指定爬取 import requests import time import csv import osappid "553850" # 这里你也可以改成 #appid int(input()) max_reviews 10000 # 想爬多少条 # max_reviews…...