Vue3 provide 和 inject 实现祖组件和后代组件通信

provide 和 inject 能够实现祖组件和其任意的后代组件之间通信:

一、provide 提供数据

我们在祖组件中使用provide 将数据提供出去。

使用provide 之前需要先进行引入:

import { provide } from "vue";

语法格式如下:

provide("数据名", 数据)

例如:我们将祖组件中的person 使用provide提供出去

javascript 复制代码
setup() {
  let person = reactive({
    name: "张三",
    age:18
  })

  provide("person", person);  // 将perosn 提供出去

  return {
    person
  }
}

二、inject 使用数据

我们在后代组件中使用inject 来使用数据。

使用inject之前需要在该组件中对其进行引入:

import { inject } from "vue";

使用语法:

let xxx = inject("数据名") ;

我们在后代组件中接受上面祖组件提供的person 数据

javascript 复制代码
setup() {
  let person = inject("person");

  return {
    person
  }
}
相关推荐
Lee川2 分钟前
JavaScript 继承进化史:从原型链的迷雾到完美的寄生组合
前端·javascript·面试
米饭同学i2 分钟前
微信小程序实现故事线指引动画效果
前端
阿懂在掘金5 分钟前
为什么写 Vue 强烈建议用 Setup?除了复用,更是代码组织
前端·vue.js
sorryhc15 分钟前
我让 AI 帮我写了一个 Code Agent!
前端·openai·ai编程
工边页字16 分钟前
面试官:请详细介绍下AI中的token,越详细越好!
前端·人工智能·后端
anyup16 分钟前
月销 8000+,uView Pro 让 uni-app 跨端开发提速 10 倍
前端·uni-app·开源
码路飞39 分钟前
热榜全是 OpenClaw,但我用 50 行 Python 就造了个桌面 AI Agent 🤖
java·javascript
前端Hardy1 小时前
别再忽略 Promise 拒绝了!你的 Node.js 服务正在“静默自杀”
前端·javascript·面试
前端Hardy1 小时前
别再被setTimeout闭包坑了!90% 的人都写错过这个经典循环
前端·javascript·vue.js
小林coding1 小时前
专为程序员打造的简历模版来啦!覆盖前端、后端、测开、大模型等专业简历
前端·后端