provide:Object | () => Object
inject:Array<string> | { [key: string]: string | Symbol | Object }
provide:
提供依赖``是一个对象,或者是一个返回对象的函数。里面呢就包含要给子孙后代的东西,也就是属性和属性值。
inject:
注入依赖
一个字符串数组,或者是一个对象。属性值可以是一个对象,包含from和default默认值。
说明:
provide 和 inject 主要在开发高阶插件/组件库时使用。并不推荐用于普通应用程序代码中。
这对选项是成对使用的
。子孙组件想要获取祖先组件得资源,那么怎么办呢,总不能一直取父级往上吧,而且这样代码结构容易混乱。这个就是这对选项要干的事情。
const Child = {
inject: {
foo: {
from: ‘bar’,
default: ‘foo’
}
}
}
from表示在可用的注入内容中搜索用的 key,default当然就是默认值。
二、示例
// 父级组件提供 ‘foo’
var Provider = {
provide: {
foo: ‘bar’
},
// …
}
// 子组件注入 ‘foo’
var Child = {
inject: [‘foo’],
created () {
console.log(this.foo) // => “bar”
}
// …
真题解析、进阶学习笔记、最新讲解视频、实战项目源码、学习路线大纲
详情关注公中号【编程进阶路】
}
三、项目案例
父组件
项目最外层的布局组件layout.vue