一、定义
父组件向子组件传参:使用props
父组件向孙组件(子组件的子组件)传参:使用provide/inject,provide提供数据,inject使用数据
二、示例
父组件引用子组件,子组件引用孙组件
父组件
<template>
<h1>父组件,{{name}}--{{price}}</h1>
<son/>
</template>
<script>
import son from './son.vue'
import {reactive,toRefs,provide} from 'vue'
export default{
components:{son},
setup(){
let car=reactive({
name:'宝马',
price:'200'
})
provide('car',car)
return{
...toRefs(car)
}
}
}
</script>
子组件
<template>
<h1>子组件</h1>
<child/>
</template>
<script>
import child from './child.vue'
export default{
components:{child}
}
</script>
孙组件
<template>
<h3>孙组件,{{car.name}}--{{car.price}}</h3>
</template>
<script>
import {inject} from 'vue'
export default{
setup(){
let car=inject('car')
return{
car
}
}
}
</script>