1. 程式人生 > 實用技巧 >Vue中provide和inject 用法

Vue中provide和inject 用法

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>

不論子元件有多深