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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • web前端vue filter 过滤器

    web前端vue filter 过滤器

    vue的过滤器通常用在一些常见的文本格式化,过滤器可以用在两个地方:双花括号插值和 v-bind 表达式。本文给大家介绍了web前端vue filter 过滤器的相关知识,感兴趣的朋友一起看看吧
    2018-01-01
  • 详解Vue如何进行表单联动与级联选择

    详解Vue如何进行表单联动与级联选择

    表单联动和级联选择是Vue.js中常见的功能,在下面的文章中,我们将讨论如何在Vue.js中实现表单联动和级联选择,感兴趣的小伙伴可以了解一下
    2023-06-06
  • 在vue中使用Base64转码的案例

    在vue中使用Base64转码的案例

    这篇文章主要介绍了在vue中使用Base64转码的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • vue点击右键出现自定义操作菜单实现代码

    vue点击右键出现自定义操作菜单实现代码

    这篇文章主要给大家介绍了关于vue点击右键出现自定义操作菜单实现的相关资料,在网页中我们也希望可以像桌面软件一样,点击右键后出现操作菜单,对选中的数据项进行相应的操作,需要的朋友可以参考下
    2023-08-08
  • v-for中动态校验el-form表单项的实践

    v-for中动态校验el-form表单项的实践

    在项目开发中,我们经常会遇到表单保存的功能,本文主要介绍了v-for中动态校验el-form表单项的实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2022-05-05
  • 使用Vue CLI配置代码压缩、加密和混淆功能示例代码

    使用Vue CLI配置代码压缩、加密和混淆功能示例代码

    这篇文章主要介绍了使用Vue CLI配置代码压缩、加密和混淆功能,通过配置 vue.config.js 文件,我们可以使用 Vue CLI 轻松实现对 Vue 应用程序代码的压缩、加密和混淆,需要的朋友可以参考下
    2023-06-06
  • vue组件实现进度条效果

    vue组件实现进度条效果

    这篇文章主要为大家详细介绍了vue组件实现进度条效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 过滤器vue.filters的使用方法实现

    过滤器vue.filters的使用方法实现

    这篇文章主要介绍了过滤器vue.filters的使用方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • vue +elementui 项目登录通过不同账号切换侧边栏菜单的颜色

    vue +elementui 项目登录通过不同账号切换侧边栏菜单的颜色

    这篇文章主要介绍了vue +elementui 项目登录通过不同账号切换侧边栏菜单的颜色,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • 解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况

    解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况

    这篇文章主要介绍了解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10

最新评论