Vue3父子组件通信,父子传参

2023-11-18

Vue3父子组件通信,父子传参

前言

Vue2的小伙伴应该该经历过转战Vue3过程的中的抓狂。好多地方使用都不太一样,这期就给大家讲一下近期我也在用vue3开发中遇到到的问题父子组件通信。

父传子

在父组件中引入son.vue子组件,为子组件传值msg

下图是父组件

<template>
  <div class="father">
    <div>我是父级</div>
    <Son :msg="msg" />
  </div>
</template>

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

const msg = ref('我是父级传的值');
</script>

<style scoped>
.father {
  margin-top: 100px;
  text-align: center;
  font-size: 26px;
}
</style>

在父级传值之后,子组件使用defineProps来接收父级传过来msg的值。
下图是子组件

<template>
  <div>
    <div>我是子级</div>
    <div>子级接受:{{ msg }}</div>
  </div>
</template>

<script setup lang="ts">
interface Props {
  msg: String;
}
defineProps<Props>();
</script>

<style scoped></style>

效果图
在这里插入图片描述
在子组件可以结束到了,父组件的传值。

子传父

使用defineEmits注册一个自定义事件,然后触发emit,向父组件传递事件

子组件

<template>
  <div>
    <div>我是子级</div>
    <el-button type="primary" size="default" @click="byValue"
      >向父组件传值</el-button
    >
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue';

const sonValue = ref('我是子级传的值');

const emit = defineEmits(['sonValue']);

const byValue = () => {
  console.log('向父组件传值');
  emit('sonValue', sonValue.value);
};
</script>

<style scoped></style>

通过子组件传过来的sonValue事件,绑定到父组件中,使用getValue方法接收。

父组件

<template>
  <div class="father">
    <div>我是父级</div>
    <Son @sonValue="getValue" />
    <div>我是子级传值:{{ SonValue }}</div>
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue';
import Son from './son.vue';
const SonValue = ref<String>('');

const getValue = (val: String) => {
  console.log('接收子组件', val);
  SonValue.value = val;
};
</script>

<style scoped>
.father {
  margin-top: 100px;
  text-align: center;
  font-size: 26px;
}
</style>


传之前
在这里插入图片描述
传值后
在这里插入图片描述

总结

最近用Vue3写项目也踩了很多的坑,很多地方使用vue2都不太一样,同样有Vue2转战Vue3的小伙伴可以一起讨论讨论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue3父子组件通信,父子传参 的相关文章

  • 缩小 ASP.NET 生成的 Javascript 的最佳方法是什么?

    在 ASP NET 3 5 运行时缩小 ASP NET 生成的 Javascript 例如由 webresource axd 提供的 Javascript 的最佳方法是什么 我尝试使用Mb压缩 http mbcompression code
  • WebPack 源映射令人困惑(重复文件)

    我决定在我今天正在启动的一个新项目上尝试 WebPack 并且我从源映射中得到了非常奇怪的行为 我在文档中找不到任何相关信息 在浏览 StackOverflow 时也找不到其他人遇到此问题 我目前正在查看由以下公司制作的 HelloWorl
  • JavaScript 原型继承和 html canvas

    我是一名 Ruby 开发人员 最终决定认真学习 JavaScript 所以我买了一些书 开始深入研究 但当我试图理解原型继承时 我很快就陷入了困境 这本书的例子之一如下 给定一个 Shape 其原型有一个绘制方法 以及两个子形状 一个 Tr
  • 使用 Bluebird.js 和 Twitter 流的 Promise 和流

    我对 Promises 和 Node 非常陌生 并且对在流中使用 Promise 感到好奇 我可以承诺直播吗 使用 Bluebirdjs 和 Twit 模块 我有以下内容 var Twit require twit var Promise
  • AngularJS 和 Apiary.IO - 无法读取任何响应标头?

    我使用 Apiary io 模拟我的 API 但不知怎的 我无法使用 angularJS 从响应对象中读取任何标头 我确信我至少通过检查 firebug 正确设置了 Content Type application json Angular
  • Puppeteer 的行为与开发者控制台不同

    我正在尝试使用 Puppeteer 提取此页面的标题 https www nordstrom com s zella high waist studio pocket 7 8 leggings 5460106 https www nords
  • 移动浏览器上的 Javascript / jQuery 页面更改事件

    我正在设计一个移动网站 同时考虑所有领先的浏览器 Safari Chrome Dolphin Opera 我想显示一个 正在加载 元素页面导航 更改 请求新页面 我无法在锚标签上使用点击事件 因为有很多锚标签存在preventDefault
  • 如何在 JavaScript 中检查未定义的变量

    我想检查变量是否已定义 例如 以下内容会引发未定义的错误 alert x 我怎样才能捕获这个错误 在 JavaScript 中 null是一个对象 不存在的事物还有另一种价值 undefined DOM 返回null对于几乎所有无法在文档中
  • 可拖动的非模态弹出窗口 Jquery Mobile

    我希望在 Jquery mobile 中有一个弹出窗口 它不会阻止用户与页面交互 并且 data dismissible false 即当页面的另一部分与页面的另一部分交互并保持可见时 弹出窗口不会消失 我已经尝试过这个 popupNew
  • Node.js 循环发送 http 请求

    我实际上遇到了使用 node js 执行的 javascript 代码的问题 我需要循环发送http请求到远程服务器 我在代码中设置了www google ca 这是我的代码 var http require http var option
  • 如何在正则表达式中区分数字和ip地址?

    例如 如果我们查看 5 56 和 183 55 0 144 基本上 当你做这样的事情时 d d 它匹配 5 56 189 55 和 0 144 有没有办法通过正则表达式仅匹配数字而不匹配 ip 地址的部分 我尝试使用前瞻 但我不知道它应该是
  • Ember:命名出口错误

    我不知道为什么我的模板没有在指定的插座中呈现 这是我第一次尝试学习 ember 我被困在指定的渠道上 我想渲染侧边栏模板 in the outlet sidebar 和内容模板 in the outlet content 但我不断在控制台中
  • 可点击的进度条

    我正在使用 Angular 并在 JavaScript 的帮助下开发了一个可点击的进度条 这是我能做到的最好的 有没有办法将滑块放置在进度条内但不干扰进度可视化 堆栈闪电战 https stackblitz com edit angular
  • 如何比较两个对象数组并更改两个数组中找到的对象的值?

    假设我有两个对象数组 let array1 id 1 name snow id 4 name jo id 8 name bran id 12 name gondo id 13 name peter
  • 将命令行参数传递给 emscripten 生成的应用程序

    当使用 Emscripten 编译 C 程序时 会生成一个 HTML 页面来显示程序的结果 我想知道如何将命令行参数传递给应用程序 例如 对于原始的 C 程序 它是 bfs 32 1 我能够通过向生成的 html 文件添加一行来传递命令行参
  • 如何使用 javascript 迭代文件系统目录和文件?

    我正在使用 Javascript 编写一个应用程序 该应用程序将与 Phonegap 一起使用来制作 Android 应用程序 我正在使用 Phonegap File API 来读取目录和文件 相关代码如下所示 document addEv
  • 使用 Lodash 循环 JavaScript 对象中的属性

    是否可以循环访问 JavaScript 对象中的属性 例如 我有一个 JavaScript 对象定义如下 myObject options property1 value 1 property2 value 2 属性将动态添加到该对象 有没
  • 用于检查字符串是否至少包含 3 个字母数字字符的最有效的正则表达式

    我有这个正则表达式 a zA Z0 9 3 我用它来查看字符串中是否至少包含 3 个字母数字字符 似乎有效 它应该匹配的字符串示例 a3c 0 c 8 9 9d 但是 我需要它更快地工作 有没有更好的方法使用正则表达式来匹配相同的模式 编辑
  • 如何连接/组合两个数组以连接成一个数组?

    我正在尝试将 JavaScript 中的 2 个数组合并为一个 var lines new Array a b c lines new Array d e f 这是一个简单的例子 我希望能够将它们组合起来 这样当读取第二行时 数组中的第四个
  • 限制在三角形内

    我正在寻找一段通用代码 javascript 它可以与 jquery UI 一起使用来限制三角形内 div 的移动 拖动 与此类似 http stackoverflow com questions 8515900 how to constr

随机推荐

  • GAMES101:作业3

    GAMES101 作业3 附其他所有作业超链接如下 Games101 作业0 作业0 Games101 作业1 作业1 Games101 作业2 作业2 Games101 作业3 作业3 Games101 作业4 作业4 Games101
  • python课程预告_2月27日直播课程预告

    明天硬核直播课程的预告 1 10 00 赖晓铮老师的 零代码FPGA图形化编程十日谈 明天讲时序逻辑电路的重要组成部分 计数器 本节需要熟悉基于触发器和组合逻辑的计数器电路模型 还会讲到秒表 电子钟和按键消抖电路的计数器应用示例 以及基于计
  • VS2017卡在登录界面问题

    文章目录 前言 分析 总结 参考链接 前言 之前一直在用VS2017来进行C 开发工作 今天打开软件 提示需要登录才能继续使用 但是在登录时 发现一直卡在登录界面 无法继续 如下图 分析 这里感觉是微软服务器连接不上导致的 所以在网上搜索了
  • 搭建MariaDB Gelera Cluster数据库集群

    基础准备 node1 node2 node3 yum源 三节点 安装并初始化数据库 三节点 配置数据库文件 三节点 node2 3 登录数据库 并赋予root用户远程权限后关闭数据库 三节点 启动数据库集群 验证集群功能 查看到wsrep
  • 适合男生的6个副业项目

    现在社会越来越激烈 大家都想在工作之余挣点外快 甚至实现财务自由 本文就为你们介绍几种适合男生从事的副业项目 1 成为自媒体达人 自媒体运营就是你在社交网络 博客 视频平台等自由发挥创作才华 发布内容 并从中赚钱的副业方式 随着智能手机和网
  • 以太坊geth客户端安装经历,也是艰难的一笔。

    现在开始通过看B站的视频学习以太坊 作为入门你看完基本理论肯定是要自己安装geth客户端的 可我缺出现了一些问题 首先我是liunx系统 通过putty软件连接的阿里云 在上面经行一些基本操作 对liunx指令一窍不通的我也是开始liunx
  • Spark项目实战-集群SSH免密码登录

    首先我们会根据之前的CentOS安装教程再搭建sparkproject2和sparkproject3两台虚拟机机器 然后在这基础上配置三台机器之间的ssh免密码登录 1 在三台机器的 etc hosts文件中 都配置对三台机器的ip hos
  • .NET 页面间传值的几种方法

    1 QueryString 这是最简单的传值方式 但缺点是传的值会显示在浏览器的地址栏中且不能传递对象 只适用于传递简单的且安全性要求不高的数值 传递 location href WebForm2 aspx name yourName 接收
  • 刷脸支付就是个破局的大杀器

    科技推动创新 改变产业链格局 从二维码支付爆发取代刷银行卡支付后 传统银行一直担忧的金融脱媒挑战实际上已是即成现实 尽管从监管层面上 一系列如 断直联 二维码互通 等监管要求 对金融机构有较大利好 但在二维码支付时代 大局已定 缺乏C端运营
  • 腾讯文件和微云服务器,网盘Web客户端对比:腾讯微云支持32GB单文件上传

    网盘Web客户端对比 腾讯微云支持32GB单文件上传 网盘最基本的客户端就是Web客户端 为了让这个最基本的客户端更好用 除了网易网盘以及新浪微盘外 其余几款网盘都有提供浏览器插件的下载 这些插件主要提供三个重要的功能 分别是大文件上传 断
  • matlab GUI窗口最大化,以及控件大小和字体自适应

    1 GUI 窗口最大化 双击除控件外的空白处 视图 属性检查器 resize on即可 设置完这个 当放大的时候 会发现我们控件的位置没有变化 此时我们需要设置一个 工具 GUI选项 调整大小的方式 成比例 2 控件大小和字体自适应 当我们
  • pytorch学习:loss为什么要加item()

    作者 陈诚 链接 https www zhihu com question 67209417 answer 344752405 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 PyTorch 0 4 0版本去
  • C#各种结束进程的方法详细介绍

    转自http www cnblogs com zjoch p 3654940 html Process类的CloseMainWindow Kill Close Process CloseMainWindow是GUI程序的最友好结束方式 从名
  • Activity的IntentFilter匹配规则

    读书笔记 我们知道 启动Activity分为两种方式 显示调用和隐式调用 显示调用需要明确的指定被启动对象的组件信息 包括包名和类名 而隐式调用需要Intent能够匹配目标组件的IntentFilter中所设置的过滤信息 如果不匹配将无法启
  • 算法--将数组分成和相等的多个子数组,求子数组的最大个数

    作者 陈太汉 一个整数数组 长度为n 将其分为m份 使各份的和相等 求m的最大值 比如 3 2 4 3 6 可以分成 3 2 4 3 6 m 1 3 6 2 4 3 m 2 3 3 2 4 6 m 3 所以m的最大值为3 算法 原理的思想是
  • CheckNetisolation加速microsoft store访问(需使用代理)

    CheckNetisolation命令行工具 1 通过注册表获取 Microsoft Store 应用的 SID 通过 Win R 快捷键打开 运行 窗口 输入 Regedit 打开注册表编辑器 然后逐级定位到HKEY CURRENT US
  • 51单片机数码管循环显示0 9c语言,如何采用单片机实现数码管循环显示0-9

    描述 8个数码管滚动显示同一个数字 8个数码管显示多个不同的字符 8个数码管闪烁显示 8个数码管滚动显示数字串 include CONFIG 0x3B31 unsigned char tab 0x3f 0x06 0x5b 0x4f 0x66
  • Linux线程控制

    本篇我将学习如何使用多线程 要使用多线程 因为Linux没有给一般用户直接提供操作线程的接口 我们使用的接口 都是系统工程师封装打包成原生线程库中的 那么就需要用到原生线程库 因此 需要引入 lpthread 即连接原生线程库 原生线程库
  • [1181]linux两台服务器之间传输文件和文件夹

    文章目录 scp 1 从服务器复制文件到本地 2 复制文件到本地并重命名 3 从服务器复制文件夹到本地 4 从本地复制文件到服务器 不包括文件夹本身 5 从本地复制文件夹到服务器 包括文件夹本身 rcp 命令使用 wget rsync 在日
  • Vue3父子组件通信,父子传参

    Vue3父子组件通信 父子传参 前言 Vue2的小伙伴应该该经历过转战Vue3过程的中的抓狂 好多地方使用都不太一样 这期就给大家讲一下近期我也在用vue3开发中遇到到的问题父子组件通信 父传子 在父组件中引入son vue子组件 为子组件