zoukankan      html  css  js  c++  java
  • vue 中的 provide 和 inject 用法

    provider/inject:简单来说就是在父组件 provide 中提供变量,子组件 inject 中来注入,然后可以在子组件内部使用 provide 的变量

    需要注意的是这里不论子组件有多深,只要调用了inject那么就可以注入provider中的数据。而不是局限于只能从当前父组件的prop属性来获取数据。

    App.vue

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <template>
      <div id="app">
        <div>
          <second/>
        </div>
      </div>
    </template>
     
    <script>
    import second from './components/Second'
      export default {
        name: 'app',
        components: {
          second
        },
        provide: {
          test: 'App 根组件的 provide'
        },
        data() {
          return {
          }
        },
        methods: {
        }
      }
    </script>
     
    <style>
    </style>

      

    Second.vue

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <template>
        <div>
          <p>second: {{ test }}</p>
          <third/>
        </div>
    </template>
     
    <script>
    import third from './Third.vue';
      export default {
        name: 'second',
        components: {
            third
        },
        inject: ['test'],
        data() {
          return {
             
          }
        },
        methods: {
         
        }
      }
    </script>
     
    <style>
    </style>

    Third.vue

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <template>
        <div>
          <p>third: {{ test }}</p>
        </div>
    </template>
     
    <script>
      export default {
        name: 'third',
        components: {},
        inject: ['test'],
        data() {
          return {
             
          }
        },
        methods: {
         
        }
      }
    </script>
     
    <style>
    </style>
  • 相关阅读:
    EF多个上下文迁移
    Ruby知识点三:运算符
    Ruby知识点二:类
    不用搭环境的10分钟AngularJS指令简易入门01(含例子)
    JavaScript DOM编程艺术第二版学习(1/4)
    VisualStudio2013&VS2015内置SQLServer入门 (三)
    VisualStudio2015内置LocalDB
    VisualStudio2013内置SQLServer入门
    Java反射学习(java reflect)(三)
    Java反射学习(java reflect)(二)
  • 原文地址:https://www.cnblogs.com/1549983239yifeng/p/14163503.html
Copyright © 2011-2022 走看看