91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vite中怎么自制mock服務器

發布時間:2023-04-17 16:58:22 來源:億速云 閱讀:179 作者:iii 欄目:開發技術

本篇內容主要講解“Vite中怎么自制mock服務器”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Vite中怎么自制mock服務器”吧!

起步

本篇文章會使用到 swraxiosvite-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()
  ],
}))

創建 mock 數據

  • 創建 mock/test.ts 文件

mkdir mock/ && touch mock/test.ts
  • 添加 mock 數據

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>
  )
}

判斷是否在開發環境

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服務器”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永泰县| 双鸭山市| 漳浦县| 黔西县| 卓尼县| 布尔津县| 尼勒克县| 屏南县| 海阳市| 太和县| 武冈市| 聊城市| 苍溪县| 平远县| 邯郸市| 上栗县| 灵武市| 花垣县| 涪陵区| 陆良县| 湟中县| 维西| 唐海县| 明水县| 德阳市| 布尔津县| 福贡县| 临汾市| 淮安市| 资溪县| 开原市| 泰顺县| 海兴县| 南汇区| 双流县| 定襄县| 益阳市| 克东县| 海原县| 乌海市| 贺州市|