Vue3学习笔记之依赖注入Provide/Inject

 更新时间:2023年05月09日 11:17:11   作者:小满zs  
provide和inject可以实现嵌套组件之间进行传递数据,这两个函数都是在setup函数中使用的,下面这篇文章主要给大家介绍了关于Vue3学习笔记之依赖注入Provide / Inject的相关资料,需要的朋友可以参考下

Provide / Inject

通常,当我们需要从父组件向子组件传递数据时,我们使用 props。想象一下这样的结构:有一些深度嵌套的组件,而深层的子组件只需要父组件的部分内容。在这种情况下,如果仍然将 prop 沿着组件链逐级传递下去,可能会很麻烦。

官网的解释很让人疑惑,那我翻译下这几句话:

provide 可以在祖先组件中指定我们想要提供给后代组件的数据或方法,而在任何后代组件中,我们都可以使用 inject 来接收 provide 提供的数据或方法。 

看一个例子

父组件传递数据

<template>
    <div class="App">
        <button>我是App</button>
        <A></A>
    </div>
</template>
    
<script setup lang='ts'>
import { provide, ref } from 'vue'
import A from './components/A.vue'
let flag = ref<number>(1)
provide('flag', flag)
</script>
    
<style>
.App {
    background: blue;
    color: #fff;
}
</style>

子组件接受

<template>
    <div style="background-color: green;">
        我是B
        <button @click="change">change falg</button>
        <div>{{ flag }}</div>
    </div>
</template>
<script setup lang='ts'>
import { inject, Ref, ref } from 'vue'
const flag = inject<Ref<number>>('flag', ref(1))
const change = () => {
    flag.value = 2
}
</script>
<style>
</style>

 TIPS 你如果传递普通的值 是不具有响应式的 需要通过ref reactive 添加响应式

使用场景

当父组件有很多数据需要分发给其子代组件的时候, 就可以使用provide和inject。

总结

到此这篇关于Vue3学习笔记之依赖注入Provide/Inject的文章就介绍到这了,更多相关Vue3依赖注入Provide/Inject内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue3打包部署报错的解决方案

    Vue3打包部署报错的解决方案

    这篇文章主要介绍了Vue3打包部署报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • vue实现打印指定组件内容的示例详解

    vue实现打印指定组件内容的示例详解

    这篇文章主要和大家分享一下vue中打印指定组件内容,多页打印自动适配纸张大小打印的方案,文中的示例代码讲解详细,需要的可以参考一下
    2024-03-03
  • 通过vue-cropper选取本地图片自定义裁切图片比例

    通过vue-cropper选取本地图片自定义裁切图片比例

    这篇文章主要介绍了Vue选取本地图片,自定义裁切图片比例 vue-cropper,本文分步骤结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Vue-cli 使用json server在本地模拟请求数据的示例代码

    Vue-cli 使用json server在本地模拟请求数据的示例代码

    本篇文章主要介绍了Vue-cli 使用json server在本地模拟请求数据的示例代码,非常具有实用价值,需要的朋友可以参考下
    2017-11-11
  • Vue-cropper 图片裁剪的基本原理及思路讲解

    Vue-cropper 图片裁剪的基本原理及思路讲解

    这篇文章主要介绍了Vue-cropper 图片裁剪的基本原理及思路讲解,本文图文并茂给大家介绍的非常详细,需要的朋友可以参考下
    2018-04-04
  • Vue.js 十五分钟入门图文教程

    Vue.js 十五分钟入门图文教程

    不过 Vue 本身含有非常丰富的功能,要用 Vue 搭建完整的应用,仍然需要了解大量 Vue 设计概念和操作技巧。这篇文章主要介绍了Vue.js 十五分钟入门图文教程,需要的朋友可以参考下
    2018-09-09
  • Vue使用MD5对前后端进行加密的实现

    Vue使用MD5对前后端进行加密的实现

    前后端分离的项目,遇到了对密码进行加密的情况,在前端或者是在后端加密都是可以的,本文主要介绍了Vue使用MD5对前后端进行加密的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Vue2.0父子组件传递函数的教程详解

    Vue2.0父子组件传递函数的教程详解

    这篇文章主要介绍了Vue2.0父子组件传递函数的教程详解,需要的朋友可以参考下
    2017-10-10
  • 如何通过Vue自定义指令实现前端埋点详析

    如何通过Vue自定义指令实现前端埋点详析

    埋点分析是网站分析的一种常用的数据采集方法,下面这篇文章主要给大家介绍了关于如何通过Vue自定义指令实现前端埋点的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 解决找不到模块“xxx.vue”或其相应的类型声明问题

    解决找不到模块“xxx.vue”或其相应的类型声明问题

    这篇文章主要介绍了解决找不到模块“xxx.vue”或其相应的类型声明问题,具有很好的参考价值,希望对大家有所帮助。
    2022-10-10

最新评论