provide 和 inject 主要在开发高阶插件/组件库时使用。并不推荐用于普通应用程序代码中。
1.provide与inject一般都是成对使用,在父组件中使用provide分发状态 在父组件任意隔代组件中能使用inject接收porvide共享的值
例子
父组件
<script>
export default {
data(){
return {
parentVal:'父组件的值'
},
//使用provide劫持父组件的值
provide:{
val:this,
parentVal:this.parentVal
}
}
}
</script>
子组件中
<script>
export default {
data(){
return {
},
//使用inject接收父组件的值
inject:['val','parentVal']
},
created(){
console.log(this.val,this.parent) //==>console.log('父组件vm数据实例','父组件的值')
}
</script>
这对选项是成对使用的。子孙组件想要获取祖先组件得资源,那么怎么办呢,总不能一直取父级往上吧,而且这样代码结构容易混乱。这个就是这对选项要干的事情。