vue3-组件通信

1. 父传子-defineProps

父组件:

<script setup>
import { ref } from 'vue'import SonCom from '@/components/Son-com.vue'const message = ref('parent')</script><template><div></div><SonCom car="沃尔沃" :message="message"></SonCom>
</template><style>
</style>

子组件接收:

<script setup>
// 子组件
const props = defineProps({car: String,message: String
})</script><template><div class="son">我是子组件</div><div>{{ car }}</div><div>{{ message }}</div>
</template><style scoped>
.son{width: 100px;height: 200px;background-color: #a72b2b;
}
</style>

解释:
在这里插入图片描述

2. 子传父 - defineEmits

子组件:

<script setup>
// 子组件
const props = defineProps({car: String,message: String
})// 子传父
const emit = defineEmits(['updateMessage'])
const updateMsg = () =>{emit('updateMessage', props.message + 'is update')
}</script><template><div class="son">我是子组件</div><div>{{ car }}</div><div>{{ message }}</div><button @click="updateMsg">修改message</button>
</template><style scoped>
.son{width: 100px;height: 200px;background-color: #a72b2b;
}
</style>

父组件:

<script setup>
import { ref } from 'vue'import SonCom from '@/components/Son-com.vue'const message = ref('parent')// 修改消息const updateMessage = (msg) => { message.value = msg}</script><template><div>我是父组件</div><SonCom car="沃尔沃" :message="message" @updateMessage="updateMessage"></SonCom>
</template><style>
</style>

解释:
在这里插入图片描述

3. 跨层传递 - provide和inject

上层组件(祖组件):

  // 跨层传递// 传递普通类型provide('upMsg', '上层消息')// 传递响应式类型const upObj = ref({ name: 'jingjing'})provide('upObj', upObj)// 传递方法:修改响应式类型const updateObj = (newName) => { upObj.value.name = newName}provide('updateObj', updateObj)

下层组件(孙组件):

// 接收上层数据
// 接收普通类型
const upMsg = inject('upMsg')
// 接收响应类型
const upObj = inject('upObj')
// 接收方法
const updateObj = inject('updateObj')

案例:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将输入框的数据输出成json

刚学&#xff0c;做一下记录 先上效果图&#xff0c;来不及解释了&#xff0c;后面再说 源码&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1pV8hDVwpB1kresHag7gIew 提取码&#xff1a;**** 操作&#xff1a; 进入项目目录下&#xff0c;cmd 清除npm缓存&#xff1…

力扣746. 使用最小花费爬楼梯

动态规划 思路&#xff1a; 定义 dp[i] 为到达下标 i 层的最小花费&#xff1b;则状态转移方程为&#xff1a; 第 i 层可以从第 i - 1 层爬一层或者第 i - 2 层爬两层到达&#xff1b;则 dp[i] std::min(dp[i - 1] cost[i - 1], dp[i - 2] cost[i - 2])初始状态&#xff1a…

使用 YApi 管理 API 文档,测试, mock

随着互联网的发展&#xff0c;API变的至关重要。根据统计&#xff0c;目前市面上有上千万的开发者&#xff0c;互联网项目超过10亿&#xff0c;保守统计涉及的 API 数量大约有 100 亿。这么大基数的API&#xff0c;只要解决某些共有的痛点&#xff0c;将会是非常有意义的事情。…

MyBatis 的XML实现方法(JAVA)

数据库表的结构如下&#xff1a; DROP DATABASE IF EXISTS test; CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4; -- 使⽤数据数据 USE test; -- 创建表[⽤⼾表] DROP TABLE IF EXISTS userinfo; CREATE TABLE userinfo ( id INT ( 11 ) NOT NULL AUTO_INCREMENT, user…

字节全员邮件,让薪资也“跳一跳”

大家好&#xff0c;我是千与编程&#xff0c;互联网中出了名的“卷王厂”——字节跳动的热点也不少。先说一下目前互联网的行情&#xff0c;我想昨天美团股价跌破发行价的那篇文章大家都看了把&#xff0c;现在就业行情还是有点“寒气逼人”。 今天有传言说某易厂也在裁员&…

Springboot常见报错及解决方案

1、多模块项目无法启动&#xff0c;报错Failed to execute goal on project*: Could not resolve dependencies for project 2、报错找不到符号&#xff08;在多moudle调用的时候&#xff0c;公共模块新增了东西的时候发生&#xff09; Rebuild项目 3、切换分支一开始跑不了的…

基本查找(顺序查找)

基本查找/顺序查找 基本思想思路代码示例输出结果 ​ 说明&#xff1a;顺序查找适合于存储结构为数组或者链表。 基本思想 顺序查找也称为线形查找&#xff0c;属于无序查找算法。从数据结构线的一端开始&#xff0c;顺序扫描&#xff0c;依次将遍历到的结点与要查找的值相比…

Elastic Search 8.12:让 Lucene 更快,让开发人员更快

作者&#xff1a;来自 Elastic Serena Chou, Aditya Tripathi Elastic Search 8.12 包含新的创新&#xff0c;可供开发人员直观地利用人工智能和机器学习模型&#xff0c;通过闪电般的快速性能和增强的相关性来提升搜索体验。 此版本的 Elastic 基于 Apache Lucene 9.9&#xf…

Java项目:ssm框架基于spring+springmvc+mybatis框架的民宿预订管理系统设计与实现(ssm+B/S架构+源码+数据库+毕业论文)

一、项目简介 本项目是一套ssm827基于SSM框架的民宿预订管理系统设计与实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调…

RPC框架简介

RPC定义 远程过程调用&#xff08;Remote Procedure Call&#xff09;。RPC的目的就是让构建分布式计算&#xff08;应用&#xff09;更加简单&#xff0c;在提供强大的调用远程调用的同时不失去简单的本地调用的语义简洁性 RPC整体架构 服务端启动时首先将自己的服务节点信息…

JavaScript 学习笔记(WEB APIs Day3)

「写在前面」 本文为 b 站黑马程序员 pink 老师 JavaScript 教程的学习笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。推荐先按顺序阅读往期内容&#xff1a; 1. JavaScript 学习笔记&#xff08;Day1&#xff09; 2. JavaSc…

Visual Studio2022实用使用技巧集

前言 对于.NET开发者而言Visual Studio是我们日常工作中比较常用的开发工具&#xff0c;掌握一些Visual Studio实用的搜索、查找、替换技巧可以帮助我们大大提高工作效率从而避免996。 Visual Studio更多实用技巧 https://github.com/YSGStudyHards/DotNetGuide 代码和功能搜…