美文网首页
2020-05-08 组件通信provide / inject

2020-05-08 组件通信provide / inject

作者: SherrinfordL | 来源:发表于2020-05-08 21:14 被阅读0次

    https://segmentfault.com/a/1190000014095107
    a

    <template>
      <div>
    <childOne></childOne>
      </div>
    </template>
    
    <script>
      import childOne from '../components/test/ChildOne'
      export default {
        name: "Parent",
        provide: {
          for: "demo"
        },
        components:{
          childOne
        }
      }
    

    b

    <template>
      <div>
        {{demo}}
        <childtwo></childtwo>
      </div>
    </template>
    
    <script>
      import childtwo from './ChildTwo'
      export default {
        name: "childOne",
        inject: ['for'],
        data() {
          return {
            demo: this.for
          }
        },
        components: {
          childtwo
        }
      }
    </script>
    

    c

    <template>
      <div>
        {{demo}}
      </div>
    </template>
    
    <script>
      export default {
        name: "",
        inject: ['for'],
        data() {
          return {
            demo: this.for
          }
        }
      }
    </script>
    
    image.png

    provide / inject 需要一起使用,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。就是说祖先组件使用provide提供数据,所有后代都可以通过inject接收数据。

    provide 和 inject 绑定并不是可响应的,当祖先组件改变provide提供的数据后,后代组件接收到的数据不会发生变化,依然是之前的数据。

    相关文章

      网友评论

          本文标题:2020-05-08 组件通信provide / inject

          本文链接:https://www.haomeiwen.com/subject/fsnqnhtx.html