vue3,provide与inject用法
provide
和 inject
是 Vue3 的一对 API,主要用于在组件树中传递数据,这对于跨级别的数据传递非常有效。
首先,我们需要在父组件(或任何祖先组件)中使用 provide
方法来提供数据:
<script setup>
import { provide } from 'vue';
const someData = "Hello World";
provide('key', someData);
</script>
然后,在下游的任何子组件或孙子组件中,我们可以使用 inject
方法来注入并使用这些数据:
<script setup>
import { inject } from 'vue';
const injectedData = inject('key');
</script>
注意,provide
和 inject
使用的 key 必须匹配。这样,你就可以在子组件中使用由父组件提供的数据了。
此外,还可以为 inject
提供一个默认值,以防止上游组件没有提供相应的值:
<script setup>
import { inject } from 'vue';
const injectedData = inject('key', 'default value');
</script>
在这个例子中,如果没有任何祖先组件提供名为 'key' 的数据,那么 injectedData
将会是 'default value'。