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

相关推荐
边界条件╝7 分钟前
微前端进阶(二)
前端
代码N年归来仍是新手村成员13 分钟前
【AWS】Lambda 初识与服务部署
javascript·react.js·ai·node.js·云计算·ai编程·aws
罗超驿18 分钟前
9.零基础学CSS:元素属性设置(字体、颜色、对齐等)全解析
前端·css
云水一下27 分钟前
JavaScript 从零基础到精通系列:流程控制、函数与作用域
前端·javascript
丷丩28 分钟前
MapLibre GL JS第28课:PMTiles源和协议
javascript·gis·map·mapbox·maplibre gl js
之歆40 分钟前
Day24_JavaScript正则表达式与性能优化实战:从入门到精通
javascript·性能优化·正则表达式
柚子科技1 小时前
Vue3 响应式原理:我被 ref 和 reactive 坑了3次后终于搞懂了
前端·javascript·vue.js
大鱼前端1 小时前
Veaury:让Vue和React组件在同一应用中共存的神器
前端·vue.js·react.js
五月君_1 小时前
继 React、Vue 之后,Three.js 也有 Skills 了!AI 写 3D 终于不“晕”了
javascript·vue.js·人工智能·react.js·3d
scan7241 小时前
大模型只是知道要调用工具,本身不
前端·javascript·html