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,因为它可能导致组件间的耦合度增加,影响代码的可读性和可维护性。

相关推荐
Kika写代码35 分钟前
【微信小程序】4|搜索框-历史搜索 | 我的咖啡店-综合实训
前端·微信小程序·小程序·notepad++
egekm_sefg2 小时前
一个基于Rust适用于 Web、桌面、移动设备等的全栈应用程序框架
开发语言·前端·rust
冴羽2 小时前
Solid.js 最新官方文档翻译(13)—— Context(上下文)
前端·javascript·react.js
ObjectX前端实验室2 小时前
交互式md文档渲染实现
前端·github·markdown
小怪瘦793 小时前
JS实现Table表格数据跑马灯效果
开发语言·javascript·信息可视化
励志成为大佬的小杨3 小时前
c语言中的枚举类型
java·c语言·前端
罗_三金3 小时前
微信小程序打印生产环境日志
javascript·微信小程序·小程序·bug
shuishen494 小时前
Web Bluetooth API 开发记录
javascript·web·js
前端熊猫4 小时前
Element Plus 日期时间选择器大于当天时间置灰
前端·javascript·vue.js
傻小胖4 小时前
React 组件通信完整指南 以及 自定义事件发布订阅系统
前端·javascript·react.js