vue2 provide
时间: 2023-08-25 14:05:55 浏览: 86
Vue 2中的provide和inject是一种非响应式的数据传递方式。这意味着,如果你在父组件中使用provide提供了一个对象,子组件中通过inject接收到的对象是没有响应性的。也就是说,当你在父组件中修改provide提供的对象的属性时,子组件中接收到的对象的属性并不会改变。\[1\]
然而,如果你传入了一个可监听的对象,那么其对象的属性还是可响应的。这意味着,如果你在provide中返回一个可监听的对象,子组件中接收到的对象的属性会保持响应性。这是因为Vue底层没有打破引用数据类型的引用关系,修改引用数据类型的属性可以实现响应式。\[1\]
在Vue 2.2.1版本之前,inject接收的值会在props和data初始化之后加载。但是在Vue 2.2.1版本之后,inject接收的值会在props和data初始化之前加载。这意味着,在data和props中可以拿到inject接收的值。\[2\]
总结来说,Vue 2中的provide和inject是一种非响应式的数据传递方式,但如果传入的是可监听的对象,其对象的属性是可响应的。在Vue 2.2.1版本之后,inject接收的值会在props和data初始化之前加载。\[1\]\[2\]
#### 引用[.reference_title]
- *1* *2* [详细讲解vue2组件通信(四)——多代传递provide/inject](https://blog.csdn.net/weixin_44242181/article/details/124286980)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [vue2中provide/inject的使用和响应式传值](https://blog.csdn.net/Min_Fox/article/details/123428325)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文