通常,当我们需要将数据从父组件传递给子组件时,我们会使用props。想象一下你有一些深度嵌套的组件的结构,你只需要来自深度嵌套子组件中的父组件的一些东西。在这种情况下,您仍然需要将 prop 向下传递到整个组件链,这可能很烦人。 对于这种情况,我们可以使用provideandinject对。无论组件层次结构有多深,父组件都可以作为其所有子组件的依赖提供者。此功能适用于两个部分:父组件具有provide提供数据的选项,子组件具有inject开始使用此数据的选项。
provide/inject
这使我们能够更安全地继续开发该组件,而不必担心我们可能会更改/删除子组件所依赖的某些东西。这些组件之间的接口保持清晰定义,就像 props 一样。
实际上,您可以将依赖注入视为一种“远程道具”,除了:
- 父组件不需要知道哪些后代使用它提供的属性
- 子组件不需要知道注入的属性来自哪里
左子组件,右面父组件