Vue3 跨组件传参 provide 与 inject

简介: Vue3 跨组件传参 provide 与 inject

provide 用于:让父组件 传递数据。

inject 用于:让后代组件 接收数据。

语法格式:

// 传递数据
import { provide } from 'vue';
provide('数据名', 数据);
 
// 接收数据
import { inject } from 'vue';
let 变量 = inject('数据名');

跨组件传参:

第一层组件:传递数据。

<template>
  <h3>我是第一层组件</h3>
  <p>{{ info.name }} : {{ info.age }}</p>
  <hr />
  <Two></Two>
</template>
 
<script setup>
// 引用 provide 函数
import { provide, reactive } from 'vue'
import Two from "../components/Two.vue"
let info = reactive({ name: "张三", age: 18 });
// 给后代组件传递数据
provide('info', info);
</script>

第二层组件:接收数据

<template>
  <h3>我是第二层组件</h3>
  <p>{{ info.name }} : {{ info.age }}</p>
  <hr />
  <Three></Three>
</template>
 
<script setup>
// 引用 inject 函数
import { inject } from 'vue'
import Three from "../components/Three.vue"
// 接收数据
let info = inject('info');
</script>

第三层组件:接收数据。

<template>
  <h3>我是第三层组件</h3>
  <p>{{ info.name }} : {{ info.age }}</p>
</template>
 
<script setup>
// 引用 inject 函数
import { inject } from 'vue'
// 接收数据
let info = inject('info');
</script>

最终效果:

:传递的数据可以在任意一层后代组件中使用。


相关文章
|
2天前
vue3【实战】语义化首页布局
vue3【实战】语义化首页布局
16 2
|
2天前
|
存储 容器
vue3【实战】来回拖拽放置图片
vue3【实战】来回拖拽放置图片
10 2
|
2天前
|
JavaScript 开发工具 开发者
vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)
vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)
12 1
|
2天前
|
API
Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,storeToRefs(),修改State的 $patch,$reset
Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,storeToRefs(),修改State的 $patch,$reset
13 1
|
2天前
|
JavaScript
vue3 【提效】自动注册组件 unplugin-vue-components 实用教程
vue3 【提效】自动注册组件 unplugin-vue-components 实用教程
8 1
|
3天前
|
JavaScript API
vue3【实用教程】组件(含父子组件传值 defineProps,自定义事件 defineEmits,defineProps,插槽 slot,动态组件 :is 等)
vue3【实用教程】组件(含父子组件传值 defineProps,自定义事件 defineEmits,defineProps,插槽 slot,动态组件 :is 等)
13 1
|
2天前
|
JavaScript 网络架构
vue3 【提效】自动路由(含自定义路由) unplugin-vue-router 实用教程
vue3 【提效】自动路由(含自定义路由) unplugin-vue-router 实用教程
11 0
vue3 【提效】自动路由(含自定义路由) unplugin-vue-router 实用教程
|
2天前
vue3 【提效】自动导入框架方法 unplugin-auto-import 实用教程
vue3 【提效】自动导入框架方法 unplugin-auto-import 实用教程
12 0
|
2天前
vue3 【提效】全局布局 vite-plugin-vue-layouts 实用教程
vue3 【提效】全局布局 vite-plugin-vue-layouts 实用教程
14 0
|
3天前
手写 vue3 的 ref,reactive 和 watchEffect
手写 vue3 的 ref,reactive 和 watchEffect
9 0