美文网首页
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提供的数据后,后代组件接收到的数据不会发生变化,依然是之前的数据。

相关文章