Vue3基础知识:组合式API中的provide和inject,他们作用是什么?如何使用?以及案例演示

1.provide和inject相较于父子传递的不同在于provide,inject可以用于跨层级通信(通俗易懂的讲就是可以实现爷孙之间的直接信息传递)。

1.跨层级传递数据

1.在顶层组件通过provide函数提供数据

2.底层组件通过inject函数获取数据

演示一:跨层传递普通数据。

效果图:

 

 

演示二:跨层传递动态数据。 

 

 效果图:

3.最后附上源代码:

爷爷组件App.vue
<script setup>
import Father from './components/Father.vue';
import { provide ,ref} from 'vue';

//传递普通数据
provide('HairColor','black')

//传递相应式数据
const count=ref(100)
provide('count',count)

//跨层级传递函数
provide('changeCount',(SonInfo)=>{
  count.value--
  console.log(SonInfo)
})
</script>



<template>
  <div>
    <h1>这个是爷爷</h1>
    <father></father>
  </div>
</template>



<style lang="scss" scoped>

</style>
父亲组件Father.vue
<script setup>
import Son from './Son.vue';
</script>


<template>
    <div>
        <h2>这里是爸爸</h2>
        <Son></Son>
    </div>
</template>



<style lang="scss" scoped>

</style>
 孙子组件Son.vue
<script setup>
import { inject } from 'vue';
const HairColor=inject('HairColor')

//
const count=inject('count')

const ChangeCount=inject('changeCount')
const clickFn=()=>{
    ChangeCount('传给父亲的数据')
}
</script>



<template>
    <div>
        <h3>这里是儿子---爷爷头发的颜色---{{HairColor}} 年龄为:{{count}}岁</h3>
        <button @click="clickFn">年龄减一</button>
    </div>
</template>



<style lang="scss" scoped>

</style>

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux安装Jmeter及简单使用教程

Linux安装Jmeter 首先需要java环境 java --version官网 下载二进制包 #创建文件夹 sudo mkdir /usr/local/jmeter #解压 sudo tar zxvf apache-jmeter-5.6.3.tgz -C /usr/local/jmeter编辑配置文件 sudo vim /etc/profile&#xff0c;添加以下内容 export JMETER_HOME/usr/l…

【Linux系列2】Cmake安装记录

方法一 1. 查看当前cmake版本 [rootlocalhost ~]# cmake -version cmake version 2.8.12.22. 进行卸载 [rootlocalhost ~]# yum remove -y cmake3. 进行安装包的下载&#xff0c;也可以下载好安装包后传至相应的目录 [rootlocalhost ~]# mkdir /opt/cmake [rootlocalhost ~…

安防监控/视频汇聚平台EasyCVR设备录像回看请求播放时间和实际时间对不上,是什么原因?

安防监控EasyCVR视频汇聚平台可提供多协议&#xff08;RTSP/RTMP/国标GB28181/GAT1400/海康Ehome/大华/海康/宇视等SDK&#xff09;的设备接入、音视频采集、视频转码、处理、分发等服务&#xff0c;系统具备实时监控、云端录像、回看、告警、平台级联以及多视频流格式分发等视…

二手闲置平台小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;卖家管理&#xff0c;商品分类管理&#xff0c;商品信息管理&#xff0c;商品购买管理&#xff0c;商品配送管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;商品信息&a…

Xilinx FPGA:vivado关于IIC的一些零碎知识点

一、简介 IlC(inter-Integrated circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线&#xff0c;用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信&#xff0c;在小数据量场合使用&#xff0c;传输距离短&#xff0c;任意时刻只能有一个主机等特性…

RoPE旋转位置编码从复数到欧拉公式

第二部分 从复数到欧拉公式 先复习下复数的一些关键概念 我们一般用表示复数&#xff0c;实数a叫做复数的实部&#xff0c;实数b叫做复数的虚部 复数的辐角是指复数在复平面上对应的向量和正向实数轴所成的有向角 的共轭复数定义为&#xff1a;&#xff0c;也可记作&#xff0…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【密钥使用介绍及通用流程】

密钥使用介绍及通用流程 为了实现对数据机密性、完整性等保护&#xff0c;可使用生成/导入的密钥&#xff0c;对数据进行密钥操作&#xff0c;比如&#xff1a; [加密解密][签名验签][密钥协商][密钥派生]开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin…

前端面试题28(Vue3的Teleport功能在什么场景下特别有用?能给个例子吗?)

Vue 3 的 Teleport 功能在需要将组件的渲染结果放置在 DOM 树中与当前组件位置无关的任意位置时特别有用。这通常涉及到需要将某些UI元素&#xff08;如模态框、弹出菜单、通知、工具提示等&#xff09;从其逻辑上的父级组件中“提取”出来&#xff0c;放置到页面的更高层级或完…

OpenAI Gym Atari on Windows

题意&#xff1a;在Windows系统上使用OpenAI Gym的Atari环境 问题背景&#xff1a; Im having issues installing OpenAI Gym Atari environment on Windows 10. I have successfully installed and used OpenAI Gym already on the same system. It keeps tripping up when t…

2024已过半,还没试过在vue3中使用ioc容器吗?

Vue3 已经非常强大和灵活了&#xff0c;为什么还要引入 IOC 容器呢&#xff1f;IOC 容器离不开 Class&#xff0c;那么我们就从 Class 谈起 Class的应用场景 一提起 Class&#xff0c;大家一定会想到这是 Vue 官方不再推荐的代码范式。其实&#xff0c;更确切的说&#xff0c…

SSO单点登录-1-同浏览器进行单点登录

前端同域 客户端前端同域&#xff0c;则cookie可以存在相同的域名或顶级域名下&#xff0c;一个客户端登录成功后&#xff0c;将token信息保存到域名下的cookie中其他不同客户端访问时&#xff0c;因为域名或者顶级域名相同&#xff0c;也能取到域名下的cookie中的token信息并…

动态粒子发射特效404网站HTML源码

源码介绍 动态粒子发射404网站HTML源码&#xff0c;粒子内容可以进行修改&#xff0c;默认是4&#xff0c;0数字还有一个页面不存在英文&#xff0c;可以自行修改&#xff0c;喜欢的朋友可以拿去使用&#xff0c;源码是html&#xff0c;记事本打开修改即可&#xff0c;鼠标双击…

大模型应用元年,到底有哪些场景可以实际落地场景?

很多企业和个人都号称自己打造了AI大模型实际落地场景&#xff0c;其中有噱头、蹭热点&#xff0c;也有真实落地应用的。下面我将聊聊有哪些应用是真实落地可执行的。 大模型写作 生成式大语言大模型的看家本领非写作莫属。大模型输出logits的基础上加上top_p、top_k、temper…

昇思MindSpore学习笔记5-02生成式--RNN实现情感分类

摘要&#xff1a; 记录MindSpore AI框架使用RNN网络对自然语言进行情感分类的过程、步骤和方法。 包括环境准备、下载数据集、数据集加载和预处理、构建模型、模型训练、模型测试等。 一、概念 情感分类。 RNN网络模型 实现效果&#xff1a; 输入: This film is terrible 正…

Tomcat的负载均衡、动静分离

一、如何tomcat和nginx负载均衡及动静分离&#xff1a;2台tomcat&#xff0c;3台nginx来实现 1.首先设置tomcat1和tomcat2服务器 关闭两台tomcat的防火墙及安全机制&#xff1a;systemctl stop filwalld setenforce 0 进入tomcat目录的webapps中&#xff0c;创建test 2.配…

PI 接口日志设置

一、全局设置 SAP NetWeaver Administrator ---> 配置 ---> 基础架构 ---> Java系统属性 ---> 选择服务页签 ---> 选择 "XPI Adapter:XI"服务进行设置。 1760915 - FAQ: Staging and Logging in PI 7.3 and higher 2518441 - The tablespace PSAPSR…

亿康源精英盛宴暨亿康源启动成功举办

&#xff08;本台记者报&#xff09;2024年7月7日下午&#xff0c;亿康源精英盛宴暨启动仪式在杭州市中维歌德大酒店盛大举行。此次盛会不仅吸引了行业内的专业人才、著名投资界大咖和科技领域的杰出企业家&#xff0c;还汇聚了众多关注大健康产业的各界人士&#xff0c;共同见…

【Linux】进程间通信——匿名管道

为什么要进行进程间通信&#xff1f; 1.数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程&#xff0c;比如我们有两个进程&#xff0c;一个负责获取数据&#xff0c;另一个负责处理数据&#xff0c;这时第一个进程就要将获取到的数据交给第二个进程 2.资源共享&…

永磁同步电机无速度算法--滑模观测器(反正切、反余弦)

一、原理介绍 在永磁同步电机滑模观测器控制中&#xff0c;转子的位置和转速信息与反动电势密切相关。滑模观测器控制基本设计思路是&#xff1a;利用永磁同步电机的电压、电流信息&#xff0c;通过永磁同步电机数学模型&#xff0c;估算出电机在两相静止坐标系中的反电动势信…

(十) Docker compose 本地部署 apollo

文章目录 1、apollo2、数据库准备3、启动后会用到的几个地址4、docker-compose运行 apollo方式一&#xff1a;使用容器 hostName 作为网络媒介apollo 客户端通过宿主机端口 拉取配置(推荐)apollo 客户端通过 自定义hostName 拉取配置 方式二&#xff1a;使用端口映射固定 ip 作…