<script setup>
import { provide } from 'vue'
provide(/* 注入名 */ 'message', /* 值 */ 'hello!')
</script>
<script setup>
,请确保 provide() 是在 setup() 同步调用的:import { provide } from 'vue'
export default {
setup() {
provide(/* 注入名 */ 'message', /* 值 */ 'hello!')
}
}
provide()
函数接收两个参数。第一个参数被称为注入名,可以是一个字符串或是一个 Symbol。后代组件会用注入名来查找期望注入的值。一个组件可以多次调用 provide(),使用不同的注入名,注入不同的依赖值。
第二个参数是提供的值,值可以是任意类型,包括响应式的状态,比如一个 ref:
import { ref, provide } from 'vue'
const count = ref(0)
provide('key', count)
<script setup>
import { inject } from 'vue'
const message = inject('message')
</script>
<script setup>
,inject() 需要在 setup() 内同步调用:import { inject } from 'vue'
export default {
setup() {
const message = inject('message')
return { message }
}
}