vue3的provide

news/2024/12/2 21:28:50/

provide 和 inject 通常成对一起使用,使一个祖先组件作为其后代组件的依赖注入方,无论这个组件的层级有多深都可以注入成功,只要他们处于同一条组件链上。

provide:提供一个值,可以被后代组件注入。

inject:注入一个由祖先组件或整个应用 (通过 app.provide()) 提供的值

父组件

<template><div>{{msg}}<A></A></div></template>
<script  setup  lang="ts">
import { provide, ref } from 'vue'
let msg=ref('hello')
provide('msg',ref(msg))
</script>
<style lang="scss" scoped>
div{width: 4rem;height: 4rem;background-color: red;
}
</style>

子组件

<template><div class="about">A<B></B></div></template><script  setup  lang="ts"></script><style lang="scss" scoped>.about{width: 2rem;height: 2rem;background-color: rgb(39, 168, 45);}</style>

B组件

inject如果在注入一个值时不要求必须有提供者,那么我们应该声明一个默认值 

<template><button @click="change">点击</button><div class="abouts">{{msg}}</div></template><script  setup  lang="ts">
import { inject, Ref,ref} from 'vue';const msg=inject<Ref<string>>('msg',ref('bai'))const change=()=>{msg.value='hi'}</script><style lang="scss" scoped>.abouts{width: 2rem;height: 2rem;background-color: rgb(53, 47, 233);}</style>

组件通信

vue2通信

props,emit:实现父子组件,子父组件,兄弟组件通信

自定义事件:实现子父组件通信

全局事件总线:实现任意组件通信

vuex:集中状态管理器,实现任意组件通信

ref:父组件获取子组件实例,获取子组件的响应数据及方法

slot:插槽,实现父子组件通信

vue3通信

props

实现父子组件通信,只读

emit

实现子组件传值给父组件

mitt

v-model

useAttrs

ref和$parent

provide和inject

pinia

slot


http://www.ppmy.cn/news/1078903.html

相关文章

freemarker学习+集成springboot+导出word

目录 一 FreeMarker简介 二 集成springboot&#xff0c;实现案例导出 三 常见面试题总结 一 FreeMarker简介 FreeMarker 是一款 模板引擎&#xff1a; 即一种基于模板和要改变的数据&#xff0c; 并用来生成输出文本(HTML网页&#xff0c;电子邮件&#xff0c;配置文件&…

Qt 动态中英文切换

背景&#xff1a; 需要界面实现动态国际化&#xff0c;一键点击切换中英文或其他语言。 前提&#xff1a; 已经完成了整个界面的翻译&#xff0c;拿到匹配的ts翻译文件&#xff0c;注意&#xff1a;要保证界面切换后&#xff0c;翻译的全覆盖&#xff0c;要保证任何需要反应的地…

第P3周:天气识别

一、前期准备 1、设置GPU import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvision import transforms, datasetsimport os,PIL,pathlibdevice torch.device("cuda" if torch.cuda.is_available() …

一些进程/线程调试经验和基础

查看进程/线程/系统运行状况等的命令 主线剧情02-ARM-Linux基础学习记录_Real-Staok的博客-CSDN博客 里面的 Linux Shell 一节 的 任务后台执行 / 任务&进程查看 部分。 关于Linux下进程的详解【进程查看与管理】 - AshJo - 博客园 (cnblogs.com)。 linux top命令查看内存…

kubevirt虚机创建svc通过NodePort的方式暴露端口

背景 存在kubevit存在的三个虚机&#xff1a; ubuntu-4tlg7 7d22h Running True ubuntu-7kgrk 7d22h Running True ubuntu-94kg2 7d22h Running True 网络没有做透传&#xff0c;pod也不是underlay网络想要通过NodePort方式暴露虚机22端口进行远程登录。 …

【Java 动态数据统计图】动态X轴二级数据统计图思路案例(动态,排序,动态数组(重点推荐:难))八(130)

需求&#xff1a; 1.有一组数据集合&#xff0c;数据集合中的数据为动态&#xff1b; 举例如下&#xff1a; [{province陕西省, city西安市}, {province陕西省, city咸阳市}, {province陕西省, city宝鸡市}, {province陕西省, city延安市}, {province陕西省, city汉中市}, {pr…

Vue实现Antv/X6中的示例,以及一些er图开发场景

通过Vue实现Antv X6中的示例&#xff0c;以及一些开发场景&#xff0c;代码已经丢到仓库里了。 lwstudy/antv-x6-vue-demo: Vue实现Antv X6中的示例&#xff0c;以及一些开发场景 (github.com)learn-antv-x6: antv/X6学习 (gitee.com) 介绍 使用脚手架&#xff08;自动生成接…

【Css】Less和Sass的区别:

文章目录 一、定义&#xff1a;【1】Less【2】Sass 二、相同之处:三、区别:【1】实现方式&#xff1a;【2】实现方式&#xff1a;【3】混合(Mixins)&#xff1a;【4】解析方式&#xff1a;【5】变量的作用域&#xff1a;【6】比起Less 一、定义&#xff1a; 【1】Less Less 是…