组合API-依赖注入:
使用provide函数和inject函数完成后代组件通讯
使用场景:
有一个父组件,里头有子组件,有孙组件,有很多后代组件,共享父组件数据
需要引入 provide
父组件写法:
import { provide } from 'vue'
setup( ) {
const money = 100
//将数据提供给后代组件 provide
provide( 'money' , money )
return { money }
}
}
子组件写法:
import { inject } from 'vue'
setup( ) {
const money = inject( 'money' )
return { money }
}
因为要遵循数据单向流原则
子组件想改变父组件的值必须通过父组件定义的方法来修改
在父组件定义方法
父组件写法:
setup( ) {
cosnt money = ref( 100 )
cosnt changgeMoney = ( saleMoney ) => {
console.log( 'changeMoney', saleMoney )
money.value = money.value - saleMoney
}
provide( 'chan