Redux Saga实现loading中间件
当前项目中很多处理耗时较长,单个API请求我们可以加拦截器做到loading的开启和关闭,但是假如是一个effects中包含了多个请求,同时夹杂了一些其它的逻辑,那么单纯靠API层的loading控制是不行的,并且还会出现抖动开关。so,我们需要做到saga-effects这层的loading控制。
目标效果
当发起一个saga监听的action时,loading遮罩开启,当effects执行结束时,关闭。
实现
1 |
|
当前项目中很多处理耗时较长,单个API请求我们可以加拦截器做到loading的开启和关闭,但是假如是一个effects中包含了多个请求,同时夹杂了一些其它的逻辑,那么单纯靠API层的loading控制是不行的,并且还会出现抖动开关。so,我们需要做到saga-effects这层的loading控制。
当发起一个saga监听的action时,loading遮罩开启,当effects执行结束时,关闭。
1 |
|
window.open这个方法是加载新的资源,一般我们都是打开一个新的网页URL,但是在一次codereview时,我注意到team的成员写了这么一个地址
1 | window.open('../../static/template.xlsx') |
此时项目开发路径情况是这样
1 |
|
毫无疑问,这个确实是有问题的。构建后,static是一级目录。所以实际上配置的路径应该是static/template.xlsx
。