vue中provide和inject 用法

一、概念解析

成对出现:provide和inject是成对出现的

作用:用于父组件向子孙组件传递数据

使用方法:provide在父组件中返回要传给下级的数据,inject在需要使用这个数据的子辈组件或者孙辈等下级组件中注入数据。
使用场景:由于vue有$parent属性可以让子组件访问父组件。但孙组件想要访问祖先组件就比较困难。通过provide/inject可以轻松实现跨级访问父组件的数据
二、代码解析
vue中provide和inject 用法_第1张图片
vue中provide和inject 用法_第2张图片
vue中provide和inject 用法_第3张图片

或者 另外一种理解:
provider/inject:简单的来说就是在父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量
需要注意的是这里不论子组件有多深,只要调用了inject那么就可以注入provider中的数据。而不是局限于只能从当前父组件的prop属性来获取数据。
vue中provide和inject 用法_第4张图片
vue中provide和inject 用法_第5张图片
vue中provide和inject 用法_第6张图片
vue中provide和inject 用法_第7张图片

从上面这个例子可以看出,只要在父组件中调用了,那么在这个父组件生效的生命周期内,所有的子组件都可以调用inject来注入父组件中的值。

你可能感兴趣的:(前端,vue,vue,javascript,vue.js)