Vite中自制mock服務器(不使用第三方服務)
更新時間:2023年04月16日 16:22:29 作者:陳楠112
本文主要介紹了Vite中自制mock服務器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
為什么要 mock?
- 后臺接口還沒完成,但前端要用到接口
- 我想篡改后臺接口的結果,測試一些分支邏輯
起步
本篇文章會使用到 swr、axios、vite-plugin-mock,請自行安裝
配置 vite進入 vite.config.ts,添加以下代碼
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { viteMockServe } from 'vite-plugin-mock'
export default defineConfig(({ command }) => ({
plugins: [
react(),
viteMockServe()
],
}))
創(chuàng)建 mock 數(shù)據
- 創(chuàng)建
mock/test.ts文件
mkdir mock/ && touch mock/test.ts
- 添加 mock 數(shù)據
import { MockMethod } from 'vite-plugin-mock'
export default [
{
url: '/api/v1/me',
method: 'get',
response: () => {
return {
id: 1,
name: 'Niki'
}
}
}
] as MockMethod[]
使用 useSWR
在使用到的組件中用:
import useSWR from 'swr'
import axios from 'axios'
export const Home: React.FC = () => {
const { data, error, isLoading } = useSWR('/api/v1/me', path => {
return axios.get(path)
})
if (isLoading) {
return <div>加載中...</div>
}
if (error) {
return <div>加載失敗</div>
}
return (
<div>Hi, I am {data.name}!</div>
)
}
判斷是否在開發(fā)環(huán)境
在 vite.config.ts 里添加
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { viteMockServe } from 'vite-plugin-mock'
// https://vitejs.dev/config/
export default defineConfig(({ command }) => ({
+ define: {
+ isDev: command === 'serve' // 它會寫在 window.isDev = true / false
+ },
plugins: [
react(),
viteMockServe()
],
}))
封裝請求
這里只是簡單的封裝一下
Axios
mkdir src/lib/ touch src/lib/ajax.tsx
import axios from 'axios'
axios.defaults.baseURL = isDev ? '/' : 'xxx' // 'xxx' 改為線上的 ip:端口
axios.defaults.headers.post['Content-Type'] = 'application/json'
axios.defaults.timeout = 10000
export const ajax = {
get: (path: `/${string}`) => {
return axios.get(path)
}
}
最終使用
import useSWR from 'swr'
import { ajax } from '../lib/ajax'
export const Home: React.FC = () => {
const { data, error, isLoading } = useSWR('/api/v1/me', path => {
return ajax.get(path)
})
if (isLoading) {
return <div>加載中...</div>
}
if (error) {
return <div>加載失敗</div>
}
return (
<div>Hi, I am {data.name}!</div>
)
}到此這篇關于Vite中自制mock服務器(不使用第三方服務)的文章就介紹到這了,更多相關Vite mock服務器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue3+vite:src使用require動態(tài)導入圖片報錯的最新解決方法
這篇文章主要介紹了vue3+vite:src使用require動態(tài)導入圖片報錯和解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
Element Cascader 級聯(lián)選擇器的使用示例
這篇文章主要介紹了Element Cascader 級聯(lián)選擇器的使用示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07
Vue3解決Mockjs引入后并訪問404(Not Found) 的頁面報錯問題
mock.js:是一款模擬數(shù)據生成器,可以生成隨機數(shù)據,攔截 Ajax 請求,使用mockjs模擬后端接口,可隨機生成所需數(shù)據,模擬對數(shù)據的增刪改查,本文給大家介紹了Vue3解決Mockjs引入后并訪問404(Not Found) 的頁面報錯問題,需要的朋友可以參考下2025-04-04

