provide和inject高级应用:路由不变的情况下,刷新页面

一、用中转站的方式
这种方式意思就是让每次操作完成以后,都让路由跳转到这个中转站页面,然后这个页面获取到进来路由的路径再返回去就可以了,这种方式可以作为解决方法之一,普遍用的还是第二种。
 
 
二、provide / inject 的方式
这种方式,就是让通过 provide 让 App.vue 为所有子孙页面注入一个 reload 的方法,然后在需要使用的页面,通过 inject 注入即可,代码如下:

 今天重点讲第二个:

父子组件传参可以通过propsemit来实现,但是当组件的层次结构比较深时,propsemit就没什么作用了。vue为了解决这个提出了Provide / Inject

通用知识
基本用法

provide 选项应该是:一个对象或返回一个对象的函数
inject 选项应该是:一个字符串数组,或 一个对象,对象的 [key] 是本地的绑定名

provide 和 inject 绑定并不是可响应的。这是刻意为之的。

代码执行顺序

data->provide->created->mounted
 

这对选项需要一起使用,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在其上下游关系成立的时间里始终生效。
如果你熟悉 React,这与 React 的上下文特性很相似。

provide 选项应该是一个对象或返回一个对

猜你喜欢

转载自blog.csdn.net/jieweiwujie/article/details/128471984