Vue中provide和inject 用法
阿新 • • 發佈:2020-12-07
1.概念
成對出現:provide和inject是成對出現的
作用:用於父元件向子孫元件傳遞資料
使用方法:provide在父元件中返回要傳給下級的資料,inject在需要使用這個資料的子輩元件或者孫輩等下級元件中注入資料。
使用場景:由於vue有$parent屬性可以讓子元件訪問父元件。但孫元件想要訪問祖先元件就比較困難。通過provide/inject可以輕鬆實現跨級訪問父元件的資料
2.簡單來說
provider/inject:簡單的來說就是在父元件中通過provider來提供變數,然後在子元件中通過inject來注入變數
需要注意的是這裡不論子元件有多深,只要呼叫了inject那麼就可以注入provider中的資料。而不是侷限於只能從當前父元件的prop屬性來獲取資料。
父元件定義:
<script> export default { // 父元件通過provide將自己的資料以物件形式傳出去 provide(){ return { parentValue:"我是父元件的值啊" } } }; </script>
子孫元件接受方式:
<script> export default { // inject:["parentValue"], // 使用一個注入的值作為資料入口: inject:{ // 使用一個預設值使其變成可選項 parentValue: { // 健名 from: 'parentValue', //來源 default: 'parentValue' // 預設值 } } } </script>
不論子元件有多深