vue,provide和inject,备忘

在Vue.js应用中,provideinject 是一对API,用于实现组件间的跨层级依赖注入。provide 在父组件中定义要向下传递的属性或方法,而 inject 在子组件中声明它需要从祖先组件那里注入的属性。

具体到您的例子:

javascript 复制代码
// 在根组件或任意中间组件中提供数据
const app = createApp({...});
app.provide('appProvided', 'value'); // 在Vue 3中,可能是app.config.globalProperties.provide(...)
// 或在setup函数中
setup() {
  provide('appProvided', 'value');
}

// 在子组件或孙子组件中注入并使用这个数据
export default {
  setup() {
    const appProvided = inject('appProvided');
    console.log(appProvided); // 输出: 'value'
    // 现在可以在子组件中使用appProvided变量了
  }
}

这意味着通过在应用或某个祖先组件中调用 provide('appProvided', 'value'),任何在其下的子孙组件都可以通过 inject('appProvided') 来获得这个值 'value'

这种方法特别适合于全局状态管理或者需要跨越多层嵌套关系的组件之间传递数据。不过要注意的是,Vue官方推荐在大型项目中使用Vuex进行状态管理,而非过度依赖于 provideinject,因为它可能导致组件间的耦合度增加,影响代码的可读性和可维护性。

相关推荐
陈随易11 小时前
2年没用Nodejs了,Bun很香
前端·后端·程序员
donecoding12 小时前
Corepack 完全解析:从懵到懂,包管理器自由了
前端·node.js·前端工程化
yqcoder12 小时前
端经典面试题:为什么 0.1 + 0.2 !== 0.3?
前端·css
ZC跨境爬虫12 小时前
跟着 MDN 学 HTML day_12:(HTML网页图片嵌入)
前端·javascript·css·ui·html
光影少年12 小时前
reeact虚拟DOM、Diff算法原理、key的作用与为什么不能用index
前端·react.js·掘金·金石计划
用户0595401744612 小时前
大模型记忆存储踩坑实录:LangChain 的 ConversationBufferMemory 让我排查了 6 小时
前端·css
是上好佳佳佳呀12 小时前
【前端(十二)】JavaScript 函数与对象笔记
前端·javascript·笔记
你真的快乐吗12 小时前
@fuxishi/svg-icon:一个 Vue 3 svg本地图标+iconify图标组件库,让图标管理不再头疼
前端·vue.js·typescript
Rkgua12 小时前
ESModule和Commonjs模块的区别
前端·javascript
江南十四行12 小时前
ReAct Agent 基本理论与项目实战(二)
前端·react.js·前端框架