步骤 在根目录新建mock文件夹,在文件夹下新建两个文件: index.js(暴露mock接口)、todo.j […]
步骤
- 在根目录新建mock文件夹,在文件夹下新建两个文件: index.js(暴露mock接口)、todo.js(mock接口)
- 在根目录新建utils文件夹,在文件夹下新建request.js(请求拦截)文件
- 在根目录新建api/todo文件夹,在文件夹下新建index.js(此文件存放request接口)文件
- 在根目录入口文件 index.js文件中引入mock/index 文件
- 在组件中引入api接口文件使用暴露的几
目录结构

Mock
todo.js(mock todo接口)
import Mock from 'mockjs'
const Random = Mock.Random
Mock.setup({
timeout: '500',
})
function createUsers() {
let user = []
while (true) {
user.push({
name: Random.first(),
sex: Random.boolean(1, 1, true) ? 'male' : 'female',
age: Random.integer(20, 50),
})
if (user.length === 2) break
}
return user
}
const todos = [
{
url: '/getUsers',
type: 'get',
response: () => {
return Mock.mock({
'users|3-5': createUsers(),
})
},
},
{
url: '/addUser',
type: 'post',
response: (data) => {
return Mock.mock({
data,
})
},
},
]
export default todos
index.js(mock接口导出文件)
import Mock from 'mockjs';
import todo from './todo'
const mocks = [
...todo
]
for( const item of mocks) {
Mock.mock(item.url, item.type, item.response)
}
Utils
request.js(axios 请求拦截器)
import axios from 'axios'
export const GET_TODO_URL = '/todo'
const instance = axios.create({
baseURL: '/',
timeout: 1000,
})
instance.interceptors.request.use(
function (config) {
console.log(config)
return config
},
function (error) {
return Promise.reject(error)
},
)
instance.interceptors.request.use(
function (response) {
return response
},
function (error) {
return Promise.reject(error)
},
)
export default instance
API
/api/user/index.js(user 请求接口)
import request from './../../utils/request'
export function getTodoApi() {
return request({
url: '/getUsers',
method: 'get',
})
}
export function editTodoApi(data) {
return request({
url: '/addUser',
method: 'post',
data,
})
}
Index引入
// 引入mock
import './mock/index'

组件中使用
import { getTodoApi } from '../../api/user'
const getTodoInfo = async () => {
const res = await getTodoApi()
console.log(res)
}
useEffect(() => {
getTodoInfo() // 调用
return () => {}
}, [])
错误处理
404错误
解决:
1. 请确定正确引入了mock文件
- 请确认正确配置了baseURL
版权声明文章标题:react+mockjs+axios使用
文章链接:
https://blog.chiyuba.com/qianduanjishu/544.html声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,转载或引用请注明出处。
温馨提示:本文最后更新于 2023年6月30日,部分内容可能存在时效性,请注意甄别。
评论
请先登录后发表评论