provider/inject:简单的来说就是在父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量。
需要注意的是这里不论子组件有多深,只要调用了inject那么就可以注入provider中的数据。而不是局限于只能从当前父组件的prop属性来获取数据。
first:定义一个parent component
<template>
<div>
<childOne></childOne>
</div>
</template>
<script>
import childOne from '../components/test/ChildOne'
export default {
name: "Parent",
provide: {
message: "demo"
},
components:{
childOne
}
}
second 定义一个子组件
<template>
<div>
{{demo}}
<childtwo></childtwo>
</div>
</template>
<script>
import childtwo from './ChildTwo'
export default {
name: "childOne",
inject: ['message'],
data() {
return {
demo: this.message
}
},
components: {
childtwo
}
}
</script>
third 定义另一个子组件
<template>
<div>
{{demo}}
</div>
</template>
<script>
export default {
name: "",
inject: ['message'],
data() {
return {
demo: this.message
}
}
}
</script>
运行结果为
