参见地址:
https://github.com/zuiidea/antd-admin 这个是基于umi的 ,这个umi号称开箱即用,官方文档地址: https://umijs.org/zh/guide/#%E7%89%B9%E6%80%A7
首先我们看到这个文件 地址如下:
https://github.com/zuiidea/antd-admin/blob/master/.umirc.js
里面有一段关键的代码如下:
alias: {
api: resolve(__dirname, './src/services/'),
components: resolve(__dirname, './src/components'),
config: resolve(__dirname, './src/utils/config'),
models: resolve(__dirname, './src/models'),
routes: resolve(__dirname, './src/routes'),
services: resolve(__dirname, './src/services'),
themes: resolve(__dirname, './src/themes'),
utils: resolve(__dirname, './src/utils'),
}
然后走进./src/services/文件 发现首先拿着api地址做了遍历
先看下api文件代码:
export default {
queryRouteList: '/routes',
queryUserInfo: '/user',
logoutUser: '/user/logout',
loginUser: 'POST /login',
queryUser: '/user/:id',
queryUserList: '/users',
updateUser: 'Patch /user/:id',
createUser: 'POST /user',
removeUser: 'DELETE /user/:id',
removeUserList: 'POST /users/delete',
queryPostList: '/posts',
queryDashboard: '/dashboard',
}
示例代码如下:
const APIFunction = {}
//api对象遍历
for (const key in api) {
APIFunction[key] = gen(api[key])
}
其实以上代码就相当于:
{
'/routes':gen('/routes'),
'xxx':gen('xxx')
}
为什么要写这个????
因为这个项目里面包含了dva在model里面
const data = yield call(loginUser, payload) //这个loginUser是个方法 ,刚开始的时候,我也纳闷 ,就是因为之前做了上面那些操作
网友评论