最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vite中自制mock服務(wù)器(不使用第三方服務(wù))

 更新時(shí)間:2023年04月16日 16:22:29   作者:陳楠112  
本文主要介紹了Vite中自制mock服務(wù)器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

為什么要 mock?

  • 后臺(tái)接口還沒完成,但前端要用到接口
  • 我想篡改后臺(tái)接口的結(jié)果,測(cè)試一些分支邏輯

起步

本篇文章會(huì)使用到 swr、axiosvite-plugin-mock,請(qǐng)自行安裝

配置 vite進(jìn)入 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ù)據(jù)

  • 創(chuàng)建 mock/test.ts 文件
mkdir mock/ && touch mock/test.ts
  • 添加 mock 數(shù)據(jù)
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' // 它會(huì)寫在 window.isDev = true / false
+ },
  plugins: [
    react(),
    viteMockServe()
  ],
}))

封裝請(qǐng)求

這里只是簡(jiǎn)單的封裝一下 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>
  )
}

到此這篇關(guān)于Vite中自制mock服務(wù)器(不使用第三方服務(wù))的文章就介紹到這了,更多相關(guān)Vite mock服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue.js組件tree實(shí)現(xiàn)無限級(jí)樹形菜單

    Vue.js組件tree實(shí)現(xiàn)無限級(jí)樹形菜單

    這篇文章主要為大家詳細(xì)介紹了Vue.js組件tree實(shí)現(xiàn)無限級(jí)樹形菜單代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Vue無后端配合實(shí)現(xiàn)導(dǎo)出功能的示例代碼

    Vue無后端配合實(shí)現(xiàn)導(dǎo)出功能的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Vue如何在無后端配合的情況下實(shí)現(xiàn)導(dǎo)出功能,文中的示例代碼簡(jiǎn)潔易懂,有需要的小伙伴可以跟隨小編一起了解一下
    2024-01-01
  • vue & vue Cli 版本及對(duì)應(yīng)關(guān)系解讀

    vue & vue Cli 版本及對(duì)應(yīng)關(guān)系解讀

    這篇文章主要介紹了vue & vue Cli 版本及對(duì)應(yīng)關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 淺談vue中所有的封裝方式總結(jié)

    淺談vue中所有的封裝方式總結(jié)

    因?yàn)楝F(xiàn)在vue的流行,vue的各種插件都出來了,我們公司也是使用vue做項(xiàng)目,那么應(yīng)該如何封裝,本文就介紹一下如何封裝,感興趣的可以了解一下
    2021-07-07
  • vue3+vite:src使用require動(dòng)態(tài)導(dǎo)入圖片報(bào)錯(cuò)的最新解決方法

    vue3+vite:src使用require動(dòng)態(tài)導(dǎo)入圖片報(bào)錯(cuò)的最新解決方法

    這篇文章主要介紹了vue3+vite:src使用require動(dòng)態(tài)導(dǎo)入圖片報(bào)錯(cuò)和解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • vue 左滑刪除功能的示例代碼

    vue 左滑刪除功能的示例代碼

    這篇文章主要介紹了vue 左滑刪除功能的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Element Cascader 級(jí)聯(lián)選擇器的使用示例

    Element Cascader 級(jí)聯(lián)選擇器的使用示例

    這篇文章主要介紹了Element Cascader 級(jí)聯(lián)選擇器的使用示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Vue3解決Mockjs引入后并訪問404(Not Found) 的頁(yè)面報(bào)錯(cuò)問題

    Vue3解決Mockjs引入后并訪問404(Not Found) 的頁(yè)面報(bào)錯(cuò)問題

    mock.js:是一款模擬數(shù)據(jù)生成器,可以生成隨機(jī)數(shù)據(jù),攔截 Ajax 請(qǐng)求,使用mockjs模擬后端接口,可隨機(jī)生成所需數(shù)據(jù),模擬對(duì)數(shù)據(jù)的增刪改查,本文給大家介紹了Vue3解決Mockjs引入后并訪問404(Not Found) 的頁(yè)面報(bào)錯(cuò)問題,需要的朋友可以參考下
    2025-04-04
  • Vue解決移動(dòng)端彈窗滾動(dòng)穿透問題

    Vue解決移動(dòng)端彈窗滾動(dòng)穿透問題

    這篇文章主要介紹了Vue解決移動(dòng)端彈窗滾動(dòng)穿透問題的方法,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-12-12
  • vue如何自定義組件v-model

    vue如何自定義組件v-model

    這篇文章主要介紹了vue如何自定義組件v-model問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評(píng)論

平南县| 磐安县| 江孜县| 寿光市| 贞丰县| 澄迈县| 广德县| 巴东县| 蚌埠市| 麻阳| 临夏市| 凤翔县| 禄丰县| 大悟县| 集贤县| 阿克| 永嘉县| 定南县| 西盟| 阳谷县| 年辖:市辖区| 焦作市| 财经| 双辽市| 温州市| 榆树市| 太谷县| 大冶市| 黔江区| 蒲城县| 九寨沟县| 潼关县| 保德县| 望江县| 邵东县| 安塞县| 长武县| 襄樊市| 阜南县| 库尔勒市| 大邑县|