VUE3父子组件传值defineProps() 和 defineEmits()

2023-11-17

definePropsdefineEmits 都是只能在<script setup>中使用的编译器宏。他们不需要导入,且会随着 <script setup> 的处理过程一同被编译掉。

官网传送门

父组件向子组件传值

defineProps 是 Vue3 中一种新的组件数据传递方式,可以用于在子组件中定义接收哪些父组件的 props。当父组件的 props 发生变化时,子组件也会随之响应。
在子组件中可以使用 defineProps 声明该组件需要接收的 props,示例如下:

父组件

<script setup lang="ts">
import { ref } from 'vue'
import ChildComponent from './ChildComponent.vue'

const count = ref(0)
const add = () => {
  count.value++
}
</script>
<template>
  <button @click="add">+</button>
  <ChildComponent :count="count"></ChildComponent>
</template>

子组件

<script setup lang="ts">
const props = defineProps({
  count: Number
})
</script>
<template>
  <div>
    {{ props.count }}
  </div>
</template>

子组件向夫组件传值

defineEmits用于在setup中注册自定义事件,是一个宏函数,使用时无需导入
defineEmits接受一个数组,元素为自定义事件名
defineEmit返回一个触发器,用于触发事件,第一个参数是具体事件,第二个是传递的值

父组件

<script setup lang="ts">
import { ref } from 'vue'
import ChildComponent from './ChildComponent.vue'

const count = ref(0)
const changeFn = (val: number) => {
  console.log(val)
  count.value = count.value + val
}
</script>
<template>
  <ChildComponent :count="count" @add="changeFn"></ChildComponent>
</template>

子组件

<script setup lang="ts">
const props = defineProps({
  count: Number
})
const emit = defineEmits(['add'])
const change = () => {
  emit('add', 1)
}
</script>
<template>
  <div>
    {{ props.count }}
  </div>
  <button @click="change">+</button>
</template>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VUE3父子组件传值defineProps() 和 defineEmits() 的相关文章

随机推荐

  • WeMos下实现小车避障与手机控制

    参考 WeMos下实现小车避障与手机控制 作者 爱学习的小王呀 发布时间 2020 10 02 10 17 45 网址 https blog csdn net hongliwong article details 108900048 spm
  • 解决pandas链式赋值警告SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a .....

    完整报错 opt anaconda3 envs quant learn lib python3 7 site packages pandas core series py 1056 SettingWithCopyWarning A valu
  • Sa-Token框架介绍 转载于链接:https://juejin.cn/post/7000174417846222878 来源:稀土掘金

    Sa Token简介 Sa Token是一款轻量级的Java权限认证框架 可以用来解决登录认证 权限认证 Session会话 单点登录 OAuth2 0 微服务网关鉴权等一系列权限相关问题 框架集成简单 开箱即用 API设计优雅 通过Sa
  • STM32学习(四)GPIO输入检测

    通过检测GPIO输入 让LED灯实现亮灭翻转的效果 跟 三 中类似 首先创建一个bsp key c和bsp key h文件 将与案件有关的宏定义和相应的函数都放在里面 1 首先在User文件夹下添加bsp key c文件 并通过bsp ke
  • ELK学习笔记之logstash安装logstash-filter-multiline(在线离线安装)

    0x00 概述 ELK logstash在搬运日志的时候会出现多行日志 普通的搬运会造成保存到ES中单条单条 很丑 而且不方便读取 logstash filter multiline可以解决该问题 github地址 https github
  • 1037. 在霍格沃茨找零钱(20)

    题目链接 http www patest cn contests pat b practise 1037 1037 在霍格沃茨找零钱 20 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Stand
  • 【源码】10 个 Python 爬虫入门实例!

    今天带伙伴们学习python爬虫 准备了几个简单的入门实例 分享给大家 涉及主要知识点 web是如何交互的 requests库的get post函数的应用 response对象的相关函数 属性 python文件的打开 保存 代码中给出了注释
  • QXlsx编译和使用

    一 概要 QtXlsx是可以读取和写入Excel文件的库 它不需要Microsoft Excel 并且可以在Qt5支持的任何平台下使用 可以用于 从头开始生成新的 xlsx文件 从现有的 xlsx文件中提取数据 编辑现有的 xlsx文件 二
  • Altium Designer19如何查看PCB中有多少焊盘和元件

    在旧版的Altium Designer中 可以通过 Reports gt Board Information 可以看到PCB的相关信息 里面就有焊盘数量 元件数量等等相关信息 但是AD19中 Reports 中没有 Board Inform
  • 机器人教育对思维能力和创新能力有益

    发展人工智能机器人教育 从孩子的思维和技术能力创新上抓起不仅重要而且必须 格物斯坦小坦克认为机器人教育更多的是采用引导的方式 激发孩子们的想法 重在培养孩子的的思维 心理素质以及动手能力 在制作机器人的过程中 孩子需要动手实践锻炼思维逻辑能
  • 2020年06月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

    一 单选题 共25题 每题2分 共50分 第1题 以下哪种输入结果不可能得到以下反馈 重要的事情说三遍 安全第一 安全第一 安全第一 A print 重要事情说三遍 安全第一 3 B print 重要事情说三遍 安全第一 安全第一 2 C
  • Python基础知识总结

    Python基础知识总结 字符串 字符串操作 字符大小写转换 长度填充与删除 string模块函数 进制转换 列表 列表之星操作 字典 字典操作 字符串 字符串操作 序号 分类 函数 方法 描述
  • 编译Linux内核

    一 首先下载好内核源代码 首先在命令行窗口中执行下面这条命令 apt cache search linux source 执行用这条命令系统会提示你安装适合你内核版本的内核源码 然后选择其中一种内核版本 到www kernel org内核官
  • Jenkins持续集成项目实践 —— 基于Python Selenium自动化测试(二)

    上一篇讲了如何搭建jenkins 这篇主要讲 怎么将自动化代码与jenkins衔接起来 jenkins上运行的两种方式 第一种 在jenkins上面运行本地代码 操作如下 新建项目 项目名称根据自己项目情况填写并选择自由模式 进行配置根据如
  • R语言入门教程知识 第二章 赋值代码与命名规则

    快捷键 新建脚本 Ctrl shift N 清理控制台快捷键 Ctrl L 赋值快捷键ALT 赋值法 1 符号方式赋值 对象名 lt 对象值 2 函数方式赋值 assign 对象 对象值 三大基础函数 numeric 数值型向量 logic
  • 上网原理大透析(MAC,IP,掩码,DNS)

    一 概述 1 1 五层模型 互联网的实现 分成好几层 每一层都有自己的功能 就像建筑物一样 每一层都靠下一层支持 用户接触到的 只是最上面的一层 根本没有感觉到下面的层 要理解互联网 必须从最下层开始 自下而上理解每一层的功能 如何分层有不
  • 内联函数的使用及注意点

    内联函数并不总是内联 Inline function是在C 中引入的一种机制 它可以拓展函数代码 避免调用函数的额外开销 在Linux环境下 gcc编译选项必须加上优化选项才能使inline有效 inline与static的关系 在这儿有一
  • Kafka之基础笔记

    1 kafka offset 存储 1 1 去zookeeper依赖 比较广为人知的Kafka offset存储方式为zookeeper 在0 8版本时 默认依然是zk 但是此时其实已经出现另外一种offset存储方式了 Kafka以 co
  • 如何在ios中集成微信登录功能

    在ios中集成微信的登录功能有两种方法 1 用微信原生的api来做 这样做的好处就是轻量级 程序负重小 在Build Settings 中这样设置 然后设置 友盟的设置同上 但是要注意 加入你需要的所有框架到应用程序中
  • VUE3父子组件传值defineProps() 和 defineEmits()

    defineProps 和 defineEmits 都是只能在