1. vue的2.2.0版本新增的属性:用以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。即祖先组件可(不论组件层次有多深)向其子孙组件传递事件,变量。参考官网:https://cn.vuejs.org/v2/api/#provide-inject。
<template>
<div>
<childOne></childOne>
</div>
</template>
<script>
import childOne from '@/ChildOne'
export default {
name: "Parent",
provide: { //父组件,设置provide,可将变量,函数传递给其子孙组件中调用/使用。
val: "demo",
arr:[1,2,3],
func:this.func,
},
methods:{
func(){
}
},
components:{
childOne
}
}
<template>
<div>
{{parentProvide}}
<childtwo></childtwo>
</div>
</template>
<script>
import childtwo from '@/ChildTwo'
export default {
name: "childOne",
inject: ['val'],
data() {
return {
parentProvide: this.val, //接受父组件传递过来的变量
}
},
mounted(){
this.func(); //调用父组件传递过来的方法
},
components: {
childtwo
}
}
</script>
<template>
<div>
<span v-for='(item,index) in arr' :key='index'></span>
</div>
</template>
<script>
export default {
name: "childThird",
inject: ['arr'],
data() {
return {
arr: this.arr
}
}
}
</script>