[Vue3]学习笔记-provide 与 inject

news2024/9/24 15:19:16

在这里插入图片描述

  • 作用:实现祖与后代组件间通信

  • 套路:父组件有一个 provide 选项来提供数据,后代组件有一个 inject 选项来开始使用这些数据

  • 具体写法:

    1. 祖组件中:
setup(){
	......
    let car = reactive({name:'奔驰',price:'40万'})
    provide('car',car)
    ......
}
  1. 后代组件中:
setup(props,context){
	......
    const car = inject('car')
    return {car}
	......
}

App.vue

<template>
	<div class="app">
		<h3>我是App组件(),{{name}}--{{ price }}</h3>
		<Child></Child>
	</div>
</template>

<script>
	import {reactive,toRefs,provide} from 'vue'
	import Child from './components/Child.vue'
	export default {
		name: 'App',
		components:{Child},
		setup() {
			let car=reactive({name:'奔驰',price:'40W'})
			provide('car',car) //给自己的后代组件传递数据
			return {...toRefs(car)}
		}
	}
</script>
<style scoped>
	.app{
		background-color: gray;
		padding: 10px;
	}
</style>


Child.vue

<template>
	<div class="child">
		<h3>我是Child组件(子)</h3>
		<Son/>
	</div>
</template>

<script>
	import {inject} from 'vue'
	import Son from './Son.vue'
	export default {
		name:'Child',
		components:{Son},
		/* setup(){
			let x = inject('car')
			console.log(x,'Child-----')
		} */
	}
</script>

<style>
	.child{
		background-color: skyblue;
		padding: 10px;
	}
</style>

son.vue

<template>
	<div class="son1">
		<h3>我是Son组件(孙),{{car.name}}--{{ car.price }}</h3>
	</div>
</template>

<script>
	import {inject} from 'vue'
	export default {
		name:'Son',
		setup(){
			let car = inject('car')	
			console.log('@@@',car)
			return {car}
		} 
	}
</script>

<style>
	.son1{
		background-color: orange;
		padding: 10px;
	}
</style>

在这里插入图片描述

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

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

相关文章

Leetcode刷题(Week1)——宽(深)度优先遍历专题

刷题时间&#xff1a; 2019/04/04 – 2019/04/07 主播&#xff1a;yxc(闫雪灿) 视频链接&#xff1a; https://www.bilibili.com/video/av32546525?fromsearch&seid14001345623296049881 题号题目链接127Word Ladderhttps://leetcode.com/problems/word-ladder/131Palind…

Integration Objects OPC 所有产品Crack

OPC产品 OPC UA 升级到 OPC UA 以提高互操作性和安全性。 OPC 隧道 无需 DCOM 即可实现安全可靠的连接。 OPC 数据归档 将 OPC 数据存储到标准数据库或 CSV 文件中。 OPC 服务器 将任何通信协议转换为OPC标准。 OPC 客户端 读取、写入和传输您的 OPC 数据。 OPC 服务器工具…

四十五、时间/空间复杂度分析

算法主要内容 一、时间复杂度分析1、由数据范围反推算法复杂度以及算法内容2、如何分析代码复杂度&#xff08;1&#xff09;看循环&#xff08;2&#xff09;看递归&#xff08;3&#xff09;一些看似为O(n^2)&#xff0c;但实际为O(n)&#xff08;4&#xff09;数据结构&…

HPM6750系列--第五篇 使用Segger Embedded Studio for RISC-V开发环境

一、目的 之前的博文中《HPM6750系列--第四篇 搭建Visual Studio Code开发调试环境》我们介绍了如何使用visual studio code进行开发调试&#xff0c;但是用起来总缺少点感觉&#xff0c;那么有没有更加友好一些的IDE用来开发呢&#xff1f; 本篇主要介绍如何使用Embedded Stud…

Stable Diffusion 模型界面介绍

Stable Diffusion 模型界面介绍 界面1 图1 Stable Diffusion 模型界面1 ①&#xff1a;选择的模型&#xff0c;及Stable Diffusion进行生成图片是使用的模型。其中.ckpt为大模型 ②&#xff1a;prompt --> 正向提示词。表示你的想法&#xff0c;你想要生成一副什么样的图…

更快更准更简单的工业异常检测新SOTA:SimpleNet

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://arxiv.org/pdf/2303.15140.pdf 代码链接&#xff1a;https://github.com/DonaldRR/SimpleNet 0.背景&#xff1a; 图像异常检测和定位任务旨在识别异常图像并定位异常子区域。…

eNSP-交换机VLAN配置

eNSP-交换机VLAN配置 文章目录 eNSP-交换机VLAN配置一、题目要求二、拓扑结构三、基础配置四、测试验证五、知识点详解1.VLAN2.VLAN的端口成员模式3.不同端口成员模式对报文的处理 一、题目要求 1.PC1可以访问PC2&#xff0c;PC4,但是不能访问PC3 2.PC2可以访问PC1&#xff0…

Python实现PSO粒子群优化算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 PSO是粒子群优化算法&#xff08;Particle Swarm Optimization&#xff09;的英文缩写&#xff0c;是一…

openGauss学习笔记-03 openGauss极简版单节点安装

文章目录 openGauss学习笔记-03 openGauss极简版单节点安装3.1 获取安装包3.1.1 下载对应平台的安装包3.1.2 解压安装包3.1.3 查看目录结构 3.2 准备软硬件安装环境3.2.1 硬件环境要求3.2.2 软件环境要求3.2.3 软件依赖要求 3.3 单节点安装3.3.1 安装前准备3.3.2 安装openGauss…

硬件电路设计--运算放大器(四)应用三比较器

文章目录 前言电压比较器一、过零比较器二、单门比较器三、滞回比较器&#xff08;施密特触发器&#xff09;四、窗口比较器五、未使用的比较器的处理六、推挽式输出或漏极开路输出开漏输出推挽输出 七、比较器的应用7.1 3V转5V7.2 双极性转单极性7.3 光敏电阻模数转换 八、比较…

互联网协议(Internet Protocol Suite)

文章目录&#xff1a; 一&#xff1a;从系统角度&#xff08;解释互联网是如何构成的&#xff0c;协议的设计思想&#xff09; 二&#xff1a;从用户的角度&#xff08;解释结构是如何发挥作用&#xff0c;完成网络数据交换的&#xff09; 参考&#xff1a;阮一峰 一&#x…

过滤器与拦截器的区别

1.运行顺序不同 过滤器是在客户端请求到达服务器&#xff0c;但还未到Servlet时运行的&#xff0c;而拦截器是在到达Servelt后&#xff0c;调用适配器(HandlerAdapter)前运行的。 2.配置方式不同 过滤器是在web.xml中配置&#xff0c;而拦截器是在Spring中的配置文件中配置&a…

mysql练习----单表查询

环境&#xff1a; 目录 第一题 第二题 第三题 第一题 --创建如下学生表 create table student( id int, name varchar(20), gender varchar(20), chinese int, math int, english int ); insert into student values (1,张明,男,89,78,90), (2,李进,男,67,53,95), (3,王…

Liunx下线程互斥与同步

文章目录 前言1.线程相关问题2.加锁操作1.相关接口2.加锁原理 3.线程安全4.线程同步 前言 本文主要围绕Linux下线程互斥问题进行相关讲解&#xff0c;同时也会线程同步相关问题。 1.线程相关问题 我们知道进程地址空间很多资源是被线程共享的。线程在并发访问这些共享资源的时…

代码随想录day11

20. 有效的括号 思路&#xff1a;这里用模拟栈的方法会更好理解&#xff0c;也就是我们每次遇到朝左方向的三种类型的时候&#xff0c;就加入相反方向的右括号到result栈中。由于栈是一个先进后出的方式&#xff0c;所以我们会有一个判断stack当前为不为空&#xff0c;和stack[…

4G理论概述

文章目录 LTE网络基础架构UMTS&#xff08;通用移动通信系统&#xff0c;Universal Mobile Telecommunications System&#xff09;UTRAN&#xff08;UMTS陆地无线接入网&#xff0c;UMTS Terrestrial Radio Access Network&#xff09;RNC&#xff08;无线网络控制器&#xff…

Vue的响应式实现思路及源码分析

Vue # 思路 new Vue() 首先执行初始化,对 data 执行响应化处理,这个过程发生在 Observer 中同时对模板执行编译,找到其中动态绑定的数据,从 data 中获取并初始化视图,这个过程发生在 compile 中同时定义一个 更新函数 和 Watcher,将来对应数据变化时 Watcher 会调用 更新…

python编程——字符串讲解

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 本文专栏&#xff1a;python专栏 专栏介绍&#xff1a;本专栏为免费专栏&#xff0c;并且会持续更新python基础知识&#xff0c;欢迎各位订阅关注。 前言 本文将介绍python字符串是什么&#xff1f;以及它的几…

C++11(一)(列表初始化,变量类型推导(auto,decltype),nullptr,范围for循环等)

目录 C11简介 列表初始化 C98中,{}的初始化问题 内置类型的列表初始化 自定义类型的列表初始化 变量类型推导 auto decltype nullptr 范围for循环 final和override 默认成员函数的控制 显式缺省函数 删除默认函数 C11简介 在2003年C标准委员会曾经提交了一份技…