vue provide inject 使用场景?

vue provide inject 使用场景?
当前已经知道有extend,minxins,这个2个都挺好用的,那么provide/inject使用场景又是在什么情况下使用的呢?之前看过知乎说的,说是实现类型vuex的功能。 provide/inject 相关使用文章也是很少,还不是很明白这个用处。

阅读 7.5k
3 个回答

可以替代dispath,
可以替代 this.$parent.something

替代嵌套过深的props,以及祖先和后代的元素的通信中的vuex-bus的一个东西。
可以理解为一个bus,但只做祖先通知后代的单向传递的一个属性

我之前用到过:某个路由页面有十个组件,当点击了某个按钮以后需要刷新页面,考虑到使用window.reload()方法非常之low,且页面有留白不好看.于是就是在源组件页面大概是App.vue里面定义了一个reload的方法 然后用provide把他传承,在孙页面用inject来接收这个方法

App.vue页面 <router-view>标签结合 this.$nextTick 达到闪回的效果 使孙页面的所有组件优雅刷新页面:

代码如下

App.vue

1.png

孙页面: inject: ["reload"],

然后在需要调用的地方直接this.reload() 即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题