provide 和 inject 是 Vue.js 中共享数据的方法:provide() 在父组件中提供数据。inject() 在子组件中获取父组件提供的数据。特点:数据响应式,按需流向所需位置,无需显式传递 props。

Vue.js 中的 provide 和 inject
问题:什么是 Vue.js 中的 provide 和 inject?
回答:provide 和 inject 是 Vue.js 中两个全局方法,用于在不同组件之间共享数据。
详细说明:
立即学习“前端免费学习笔记(深入)”;
这是一款使用jquery制作的带商品分类侧边栏列表的商城导航菜单。该商城菜单兼容ie8浏览器。用户可以通过点击左侧的下拉菜单来查看各种商品的列表,非常实用和方便。 使用方法 在页面中引入样式文件style.css和jquery.min.js文件。
provide
- 用于在父组件中向其子组件提供数据。
- 在父组件的 setup() 或 created() 方法中使用 provide() 方法提供数据。
- 使用的语法:
provide('propertyName', value)
inject
- 用于在子组件中从父组件获取数据。
- 在子组件的 setup() 方法中使用 inject() 方法获取数据。
- 使用的语法:
const propertyName = inject('propertyName')
用法:
- 在父组件中,使用 provide() 方法提供数据:
// 父组件
export default {
setup() {
provide('sharedData', {
message: 'Hello, world!'
})
}
}- 在子组件中,使用 inject() 方法获取数据:
// 子组件
export default {
setup() {
const sharedData = inject('sharedData')
console.log(sharedData.message) // 输出: "Hello, world!"
}
}特点:
- provide 和 inject 允许数据在组件树中按需流向所需的位置。
- 它们可以用来共享状态、配置项或其他数据,而无需显式地从组件到组件传递 props。
- 共享的数据是响应性的,当它在父组件中发生变化时,子组件将自动更新。









