在 Vue3 中,provide
和inject
用于实现组件之间的数据传递,尤其是在嵌套层级较深的组件间进行数据共享时非常有用。
provide
的作用provide
选项用于在父组件中提供数据或方法,使得后代组件能够访问到这些数据或方法。- 例如,在一个根组件或者较高级别的组件中,可以使用
provide
来提供一个值:import { provide, ref } from 'vue'; const app = { setup() { const theme = ref('dark'); provide('theme', theme); return { theme }; } };
- 这里的
provide('theme', theme)
语句表示提供了一个名为theme
的数据,其值为theme
这个响应式对象(在这个例子中是一个ref
创建的响应式变量)。这个提供的数据可以被后代组件获取到。 inject
的作用inject
选项用于在后代组件中注入由父组件(或祖先组件)通过provide
提供的数据或方法。- 继续上面的例子,在后代组件中可以这样使用
inject
: <