vue3 中 defineProps 和 defineEmits

news2025/1/20 5:48:56

在 Vue 3 中,defineProps 和 defineEmits 是组合式 API 的核心功能,用于处理父子组件之间的传值和事件通信。

1. defineProps

defineProps 用于定义并接收父组件传递过来的数据(props)。它是在子组件中使用的,接收的数据可以是各种类型。

// 子组件
<template>
  <div>
    <h1>title:{{ title }}</h1>
    <p>count:{{ count }}</p>
  </div>
</template>

<script setup>
import { defineProps } from 'vue'

// 接收父组件传递的 props
const props = defineProps({
  title: String,
  count: Number
})
</script>
// 父组件
<template>
  <Child title="Hello, World!" :count="10" />
</template>

<script setup>
import Child from './Child.vue';
</script>

2. defineEmits

defineEmits 用于定义并触发子组件向父组件发送的事件。父组件可以通过监听这些事件来执行相应的操作。

<!-- 父组件 -->
<template>
  <Child @update="handleUpdate" />
</template>

<script setup>
import Child from './Child.vue';

// 处理子组件传来的事件
const handleUpdate = (value) => {
  console.log('Updated value from child:', value);
};
</script>
<!-- 子组件 -->
<template>
  <button @click="sendUpdate">Click to Update</button>
</template>

<script setup>
import { defineEmits } from 'vue';

// 定义事件
const emit = defineEmits(['update']);

const sendUpdate = () => {
  emit('update', 'new value'); // 触发 update 事件并传递参数
};
</script>

3. 使用 TypeScript 定义类型

在 Vue 3 中结合 TypeScript 时,defineProps 和 defineEmits 可以使用更严格的类型检查,提升代码的健壮性。

// 子组件
<script setup lang="ts">
import { defineProps, defineEmits } from 'vue';

// 定义 props 的类型
const props = defineProps<{
  title: string;
  count: number;
}>();

// 定义 emit 的事件和类型
const emit = defineEmits<{
  (event: 'update', newTitle: string): void;
}>();

const updateTitle = () => {
  emit('update', 'New Title with TS'); // 触发事件并传递参数
};
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2059441.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

100000在银行存个3年利息居然12000

python存款利息问题 设计一个函数来计算存款利息。存款利息由存款金额和存款时间决定。 如果存款金额小于或等于5000元&#xff0c;则年利率为2%;5000元到10000元之间&#xff0c;则年利率为3%;大于10000元&#xff0c;则年利率为4%。返回本金和利息 def getMoney(amount,yea…

44.开发商购买土地

44.开发商购买土地 &#xff08;用到了前缀和的知识&#xff09; 题目链接 //卡码网题号44.开发商购买土地 #include<iostream> #include<vector> #include<climits> using namespace std;int main() {int n, m;int sum0;cin >> n >> m;vector…

stable-diffusion-webui容器构建教程

一、介绍 Stable Diffusion WebUI 是一个提供了易于使用的 AI 绘画工具&#xff0c;它允许用户通过一个更友好、可视化的网页界面来与 Stable Diffusion 模型互动&#xff0c;可以实现文生图、图生图等。 二、特点 易于使用的界面 &#xff1a;用户可以通过网页界面进行操作…

【数据同步】SeaTunnel初体验,5000字深入浅出带你用上Oracle-CDC

Apache SeaTunnel 是啥&#xff1f;下一代高性能、分布式、海量数据集成框架。支持上百个数据源、传输速度快、准确率高&#xff0c;丰富易扩展的连接器和插件化的连接器设计&#xff0c;能够更轻松的运行复杂的集成。是一个分布式、高性能的数据集成平台&#xff0c;用于数据迁…

USB Type-C如何取9V、12V、15V、20V电压-PD快充协议芯片ECP5701

相信大家在生活中也发现了&#xff0c;现在越来越多的设备都改用这种type-C接口的母座进行取电了。 因为欧盟决议 &#xff1a;自2024年起部分消费电子产品必须提供单一的USB-C充电接口。 那么这种type-C接口相比之前的Micro-B接口有着一个很大的优势就是可以有更高的电压&…

部署同步工具syncthing

1、下载包arm包&#xff08;根据自己的环境下载包&#xff09; #进到指定目录 cd /usr/local/ #可以根据自己的环境下载不同版本的包 wget https://github.com/syncthing/syncthing/releases/download/v1.27.10/syncthing-linux-arm64-v1.27.10.tar.gz2、进行部署 #将其解压 …

接口参数与文档||关于淘宝商品·订单数据API接口的功能达成经验分享

电商数据采集有5种方式&#xff0c;包括API、RPA、数据库连接、Excel下载和ERP等业务系统数据采集。这些方法可帮助卖家获取多平台电商数据&#xff0c;进行深度挖掘&#xff0c;实现电商运营的优化。 电商竞争白热化的今天&#xff0c;一个电商卖家往往会在多个平台铺设店铺来…

Flutter Web 正式官宣弃用 HTML renderer , Canvas 路线成为唯一

Flutter Web 团队计划在 2025 年的第一个 Flutter stable 版本中弃用 HTML renderer&#xff0c;当然在 master 和 beta 中会更早合并这一更改。 关于这个话题&#xff0c;其实在年初的我就曾发布过 《Flutter 即将放弃 Html renderer 》&#xff0c; Html renderer 从 2018 年…

狗都能看懂的Swin Transformer的讲解和代码实现

文章目录 1、Swin-Transformer介绍2、模型整体框架3、Patch Mergeing详解4、W-MSA模块详解MSA模块计算量W-MSA模块计算量 5、SW-MSA详解6、Relative Position Bias详解7、模型详细配置参数 1、Swin-Transformer介绍 自从ViT&#xff08;Vision Transformer&#xff09;出现之后…

腾讯软件测试岗二面:web 测试问题被虐哭了,直到学长给了我这些知识点.....

web 测试一直是大厂软件测试问到的一个重点&#xff0c;下面给大家展示下大厂关于web 测试经常会问到的一些问题&#xff0c;以及解析。看当面试官问到你这些问题的时候&#xff0c;你是否也能够对答如流。 web 测试面试真题及解析&#xff1a; 一&#xff0c;描述用浏览器访问…

SQL基础——函数与约束

声明&#xff1a;以下内容为根据黑马数据库视频教程&#xff0c;个人整理的笔记&#xff0c;方便记录学习。 SQL基础之函数与约束 知识导图案例SQL语句编写一、函数1.字符串函数2.数值函数3.日期函数4.流程函数 二、约束 知识导图 案例SQL语句编写 一、函数 1.字符串函数 A.…

用工业操作系统鸿道Intewell可以玩黑神话悟空吗?

黑神话悟空的爆火&#xff0c;让我想到&#xff0c;工业操作系统鸿道Intewell是否可以玩黑神话悟空&#xff1f; 鸿道Intewell操作系统是面向工业控制领域的操作系统&#xff0c;它支持实时和非实时应用在同一个硬件平台上运行&#xff0c;并且能够保留Windows开发环境的同时部…

平衡二叉树(AVLTree)

1.平衡二叉树的定义 1.1 什么是平衡二叉树 平衡二叉树&#xff0c;又称AVL树&#xff0c;用于解决二叉排序树高度不确定的情况&#xff0c;如果二叉排序树的子树间的高度相差太大&#xff0c;就会让二叉排序树操作的时间复杂度升级为O(n)&#xff0c;为了避免这一情况&#x…

mac 安装Arthas

mac安装有两种方式 1.第一步安装Arthas 第一种&#xff1a; curl -L https://arthas.aliyun.com/install.sh | sh 第二种jar包形式 curl -O https://arthas.aliyun.com/arthas-boot.jar个人比较推荐第一种因为运行测试成功了 第一种安装后可能会出现一些命令不符合 需…

NVIDIA刚刚发布了关于 AI 的免费在线课程!

英伟达最近上线了一批不错的免费课程&#xff0c;先收藏起来&#xff01; ps:有时候真想有一个收藏即学会的技能啊 数据中心中的人工智能 了解数据中心的 AI 基础知识&#xff0c;涵盖机器学习、深度学习、GPU 架构和部署。 了解多系统 AI 集群和基础设施规划。 课程地址&…

勇闯机器学习(第三关-特征工程)

以下内容皆为原创&#xff0c;制作不易&#xff0c;请帅锅、镁铝点点赞赞和关注吧❥(^_^) 一.提问环节 机器学习是什么&#xff1f; 机器学习就是通过自动分析大量数据去建立模型&#xff0c;训练模型&#xff0c;预测数据。 这么好记的概念&#xff0c;你应该记住了吧&#x…

多线程编程的拙见

一. 线程和进程的概念 1.为什么引入多线程编程&#xff1f; 在多线程&#xff08;Multithreaded&#xff0c;MT&#xff09;编程出现之前&#xff0c;电脑程序的运行由一个执行序列组成&#xff0c;执行序列按顺序在主机的中央处理器CPU中运行。即使整个程序由多个相互独立无…

基于Yolov5的安全帽检测系统设计与开发(论文+源码)_kaic

摘 要 安全帽检测系统的设计意义在于提高工作场所的安全性和生产效率&#xff0c;通过安全帽检测系统可以实时监控工人是否佩戴安全帽&#xff0c;及时发现不佩戴安全帽的工人并进行提醒和警示&#xff0c;避免因为不佩戴安全帽导致意外事故的发生。因此&#xff0c;本文是一个…

云呼叫中心系统哪家好?这个系统强烈推荐

云呼叫中心系统作为企业客户服务与运营的核心平台&#xff0c;正逐步成为提升企业竞争力的关键要素。面对市场上琳琅满目的云呼叫中心系统提供商&#xff0c;企业往往面临选择难题&#xff1a;“云呼叫中心系统哪家好&#xff1f;” 云呼叫中心系统&#xff1a;定义与核心功能 …

【HuggingFace Transformers】BertModel源码解析

BertModel源码解析 1. BertModel 介绍2. BertModel 源码逐行注释 1. BertModel 介绍 BertModel 是 transformers 库中的核心模型之一&#xff0c;它实现了 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;模型的架构。BERT 是基于 Trans…