詳解vue3結(jié)合ts項(xiàng)目中使用mockjs
前后端分離的開發(fā)模式
前端需要向后端請(qǐng)求數(shù)據(jù)(ajax請(qǐng)求),但實(shí)際開發(fā)過程中,前后端會(huì)約定一份接口文檔,但前后端開發(fā)進(jìn)度并不一致,當(dāng)后端沒有完善接口功能時(shí),前端需要在本地模擬數(shù)據(jù)返回,此時(shí)需要使用到mockjs。
安裝mock
npm install mockjs --save-dev
創(chuàng)建mock文件夾
mock下創(chuàng)建index.ts、types.ts 以及你需要使用到的模塊的.ts文件。
inde.ts文件代碼
import Mock from 'mockjs' import { MockParams } from './types' import api from './api' // 需要遍歷的請(qǐng)求 const mocks = [...api] // 設(shè)置200-2000毫秒延時(shí)請(qǐng)求數(shù)據(jù) Mock.setup({ timeout: '200-2000' }) // 接口攔截 export function mockRequest() { let i: MockParams for (i of mocks) { Mock.mock(new RegExp(i.url), i.type || 'get', i.response) } }
types.ts文件代碼
// 定義參數(shù)類型 export interface MockParams { url: string type: string data?: any params?: any response(option?: any): Record<string, unknown> }
api.ts文件代碼
const tokens = { admin: { password: 123456, token: 'admin-token' }, editor: { password: 123456, token: 'editor-token' } } // get請(qǐng)求從config.url獲取參數(shù),post從config.body中獲取參數(shù) function paramObj(url) { const search = url.split('?')[1] if (!search) { return {} } return JSON.parse( '{"' + decodeURIComponent(search) .replace(/"/g, '\\"') .replace(/&/g, '","') .replace(/=/g, '":"') + '"}' ) } const api = [ // 登陸接口 { url: '/user/login', type: 'get', response: (config) => { const { username } = paramObj(config.url) const token = tokens[username].token if (token) { return { code: 0, message: '操作成功', data: { token: token } } } return { code: 1, message: '用戶信息錯(cuò)誤,請(qǐng)重試~', data: {} } } } ] export default api
最后在main.ts引入
/** * 測(cè)試環(huán)境下 引入自定義的mockRequest * 因?yàn)閙ockRequest不是默認(rèn)導(dǎo)出的:export default{} * 所以引入時(shí)需要加大括號(hào),這種可以引入多個(gè) */ if (process.env.NODE_ENV === 'development') { const { mockRequest } = require('../mock') mockRequest() }
在shims-vue.d.ts中添加聲明
declare module 'mockjs'
以上就是詳解vue3結(jié)合ts項(xiàng)目中使用mockjs的詳細(xì)內(nèi)容,更多關(guān)于vue3+ts使用mockjs的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue實(shí)現(xiàn)微信小程序中預(yù)覽文件的縮放功能
在微信小程序中,默認(rèn)情況下,文件預(yù)覽功能不支持文檔縮放,導(dǎo)致用戶在遇到小字體時(shí)難以清晰閱讀,為了解決這一問題并提升用戶體驗(yàn),實(shí)現(xiàn)文檔的縮放功能至關(guān)重要,所以本文2024-12-12vue3中vite的@路徑別名與path中resolve實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于vue3中vite的@路徑別名與path中resolve的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02Vue實(shí)現(xiàn)Excel預(yù)覽功能使用場(chǎng)景示例詳解
這篇文章主要為大家介紹了Vue實(shí)現(xiàn)Excel預(yù)覽功能使用場(chǎng)景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09vue使用Element-UI部分組件適配移動(dòng)端問題
這篇文章主要介紹了vue使用Element-UI部分組件適配移動(dòng)端問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Vue3配置路由ERROR in [eslint]報(bào)錯(cuò)問題及解決
這篇文章主要介紹了Vue3配置路由ERROR in [eslint]報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10