关于局部mock

来源:4-2 登录交互开发

weixin_慕前端5001913

2021-10-28

在request请求函数中,通过判断传来的options.mock是否等于undefined,等于的话直接用options.mock赋值给config.mock,这样虽然明面上业务走得通,但总感觉不太妥当,config中的mock属于全局mock,而options中的mock只是局部该次请求中的mock,这样的赋值,相当于每次请求都会改变config中的mock值,作为配置文件中的值,频繁改变不合适吧。我觉得可以在请求中判断options.mock,如果是undefined则取config.mock,不是则取options.mock
如在非pro的环境下,service.defaults.baseURL = (typeof options.mock != ‘undefined’ ? options.mock : config.mock) ? config.mockApi : config.baseApi
纯属个人见解

写回答

1回答

河畔一角

2021-10-28

你理解的很到位,这里确实有一点不太妥,那就是频繁修改全局的mock。

正确的逻辑应该是:先判断局部mock,在判断全局mock。

// 判断全局mock是否开启

let isMock = config.mock;

// 判断局部接口mock是否开启,局部mock可打开或者关闭,默认undefined

if (typeof mock != 'undefined') isMock = mock;

// 生产环境强制走baseApi;

if (['prod', 'pre'].includes(config.env)) {

service.defaults.baseURL = config.baseApi;

} else {

service.defaults.baseURL = isMock ? config.mockApi : config.baseApi;

}


0
1
weixin_慕前端5001913
非常感谢!
2021-10-28
共1条回复

Vue3+ElementPlus+Koa2 全栈开发后台系统

从前端晋级到全栈,让你的未来发展有更多可能

1069 学习 · 580 问题

查看课程