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

相关推荐
向上的车轮4 分钟前
TypeScript 一日速通指南:数据类型全解析与转换指南
javascript·typescript
用户9714171814278 分钟前
absolute 元素的包含块(containing block)怎么找
前端·css
青山Coding11 分钟前
Cesium应用(四):全球台风气象可视化实现
前端·vue.js·cesium
kyriewen12 分钟前
响应式设计:一套代码,手机平板电脑全拿下
前端·css·html
姝然_952713 分钟前
Jetpack Compose Shape 基础使用
前端
cxxcode17 分钟前
ArrayBuffer / TypedArray / Blob / File 关系与操作指南
前端
叫我一声阿雷吧22 分钟前
【JS 实战案例】用 JS 实现页面滚动到指定位置(带动画)
javascript·页面交互·js实战案例·平滑滚动·前端零基础·锚点导航
We་ct32 分钟前
React 更新触发原理详解
开发语言·前端·javascript·react.js·面试·前端框架·react
还是大剑师兰特37 分钟前
Vue3 页面权限控制实战示例(路由守卫 + 权限判断)
开发语言·前端·javascript