provide 和 inject 主要在開(kāi)發(fā)高階插件/組件庫(kù)時(shí)使用谋右。并不推薦用于普通應(yīng)用程序代碼中灶泵。
1.provide與inject一般都是成對(duì)使用育八,在父組件中使用provide分發(fā)狀態(tài) 在父組件任意隔代組件中能使用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數(shù)據(jù)實(shí)例','父組件的值')
}
</script>
這對(duì)選項(xiàng)是成對(duì)使用的。子孫組件想要獲取祖先組件得資源赦邻,那么怎么辦呢髓棋,總不能一直取父級(jí)往上吧,而且這樣代碼結(jié)構(gòu)容易混亂。這個(gè)就是這對(duì)選項(xiàng)要干的事情按声。