vue本地模擬服務(wù)器請求mock數(shù)據(jù)的方法詳解
原因
- 1、mockjs本地開發(fā)的時候用還好,mock數(shù)據(jù)需要生產(chǎn)時候用就不大行了
- 2、mock的數(shù)據(jù)通過module.exports、export實現(xiàn)的時候,npm run build 生產(chǎn)打包的時候,這些假數(shù)據(jù)會打包進(jìn)app.js文件里面,導(dǎo)致文件大、首屏渲染慢;而且,在js文件里面mock的數(shù)據(jù)量超過webpack限制的時候,打包會失敗
- 3、遠(yuǎn)程mock數(shù)據(jù)的就不需要了。像 YApi、網(wǎng)易NEI
場景
- 1、做演示項目的時候,數(shù)據(jù)需要完全本地化實現(xiàn)
- 2、做演示項目的時候,要求數(shù)據(jù)可供業(yè)務(wù)人員修改
- 3、mock數(shù)據(jù)量1w+的時候(因為項目用到的數(shù)據(jù)有6w+,十幾M的文件,需要用到此方法了)
- 4、做的項目,需要前端人員先定義接口數(shù)據(jù),后臺人員配合傳。這時候定義好的數(shù)據(jù)格式直接扔給后臺人員就行了,特別是一些“查”,沒有“增刪改”的項目,前端寫好后,基本不需要怎么修改了,挺方便的。
- 5、基于vue2 cli3項目
方法
vue cli3 的項目,打生產(chǎn)包的時候,public文件夾里面的文件,是不經(jīng)webpack編譯,直接復(fù)制到 publicPath設(shè)置的目錄下的,開發(fā)時用到的json數(shù)據(jù)、圖片等資源文件,可以放到 public目錄里面。
mock資源
如下,準(zhǔn)備了一張圖片和一個json文件
|-- src
|-- public
|-- data
|-- table.json
|-- images
|-- cat.png配置
涉及的文件如下(具體參考代碼):
|-- src
|-- .env.development // 開發(fā)環(huán)境配置,主要是配置服務(wù)器地址
|-- .env.production // 生產(chǎn)環(huán)境配置,主要是配置服務(wù)器地址
|-- settings.js // 一些全局配置,把publicPath的值設(shè)置在這里
|-- utils
|-- mock-request.js // axios請求封裝
|-- api
|-- table.js // 獲取table.json數(shù)據(jù)的請求封裝
|-- views
|-- mockDataTest // 用來顯示請求結(jié)果
|-- index.vue
|-- index.scss
|-- index.js
|-- public
|-- data
|-- table.json
|-- images
|-- cat.png
|-- vue.config.js vue.config.js + settings.js
先配置下訪問公共路徑,例如,想在訪問的時候地址加上dist路徑,可以在vue.config.js如下配置
module.exports = {
publicPath: process.env.NODE_ENV === 'production' ? '/' : '/dist',
}為方便調(diào)用,記得這里要和settings.js里面的publicPath同步修改。
.env.development + .env.production
這里主要是配置下部署的服務(wù)器的地址,例如,開發(fā)時,本地訪問的地址是http://localhost:8081 定義一個參數(shù),存放此地址,名字隨意
VUE_APP_MOCK_URL = 'http://localhost:8081/'
mock-request.js
這里主要是配置下axios的baseURL,直接讀取.env.development or .env.production里面配置的服務(wù)器地址就行,例如,
baseURL: process.env.VUE_APP_MOCK_URL
這里會自動根據(jù)命令,讀取不同環(huán)境配置的服務(wù)器地址
table.js
這里是服務(wù)器請求相關(guān)的,.json文件的數(shù)據(jù)怎么請求獲取,如下所示
import mrequest from '@/utils/mock-request'
import defaultSettings from '@/settings'
const { publicPath } = defaultSettings
export const tableData = () => {
return mrequest({
url: publicPath + `/data/table.json`,
method: 'get'
})
}mockDataTest
這里主要是演示效果
- 1、調(diào)用接口,在界面上顯示table.json的數(shù)據(jù)
- 2、顯示放的圖片(也可以是其他資源,例如音樂、視頻)
具體看代碼了
效果如下

代碼
代碼,參考
總結(jié)
簡單的實現(xiàn)了不用依賴后臺接口的mock數(shù)據(jù)請求。數(shù)據(jù)都存放在.json文件里面。這些放在public文件夾的文件,都不參與編譯,方便修改和替換。打包生產(chǎn)后,可以直接放靜態(tài)服務(wù)器運(yùn)行。
以上,因為一個演示平臺需要,數(shù)據(jù)、圖片、視頻都有頻繁修改替換的可能,所以采用如此方式實現(xiàn)。
到此這篇關(guān)于vue本地模擬服務(wù)器請求mock數(shù)據(jù)的文章就介紹到這了,更多相關(guān)vue本地模擬服務(wù)器請求mock內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 詳解vue-cli項目中用json-sever搭建mock服務(wù)器
- 在vue中使用express-mock搭建mock服務(wù)的方法
- Vue利用mockjs編寫假數(shù)據(jù)并應(yīng)用的問題記錄
- Vue+Mockjs模擬curd接口請求的示例詳解
- Mock.js在Vue項目中的使用小結(jié)
- vue?中簡單使用mock的示例代碼詳解
- Vue項目中使用mock.js的完整步驟
- vue+koa2搭建mock數(shù)據(jù)環(huán)境的詳細(xì)教程
- vue項目中mock.js的使用及基本用法
- Vue+Mock.js模擬登錄和表格的增刪改查功能
- 在Vue框架中配置Mock服務(wù)器的方法
相關(guān)文章
Vue?Router路由hash模式與history模式詳細(xì)介紹
Vue?Router是Vue.js官方的路由管理器。它和Vue.js的核心深度集成,讓構(gòu)建單頁面應(yīng)用變得易如反掌。路由實際上就是可以理解為指向,就是我在頁面上點(diǎn)擊一個按鈕需要跳轉(zhuǎn)到對應(yīng)的頁面,這就是路由跳轉(zhuǎn)2022-08-08
vue使用element-ui的el-date-picker設(shè)置樣式無效的解決
本文主要介紹了vue使用element-ui的el-date-picker設(shè)置樣式無效的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
uniapp實現(xiàn)紅包動畫效果代碼實例(vue3)
uniapp作為一種基于Vue.js的前端框架,實現(xiàn)了一套代碼多端運(yùn)行的理念,成為了眾多開發(fā)者的首選,下面這篇文章主要給大家介紹了關(guān)于uniapp實現(xiàn)紅包動畫效果的相關(guān)資料,需要的朋友可以參考下2024-01-01
Node.js使用orm2進(jìn)行update操作時關(guān)聯(lián)字段無法修改的解決方法
這篇文章主要給大家介紹了Node.js使用orm2進(jìn)行update操作時關(guān)聯(lián)字段無法修改的解決方法,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-06-06
vue-cli3.0+element-ui上傳組件el-upload的使用
這篇文章主要介紹了vue-cli3.0+element-ui上傳組件el-upload的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12
openlayers6之地圖覆蓋物overlay三種常用用法(popup彈窗marker標(biāo)注text文本)
這篇文章主要介紹了openlayers6之地圖覆蓋物overlay三種常用用法(popup彈窗marker標(biāo)注text文本),主要講overlay三種最常用的案例,感興趣的朋友一起看看吧2021-09-09
探秘Vue異步更新機(jī)制中nextTick的原理與實現(xiàn)
nextTick?是?Vue?提供的一個重要工具,它的作用主要體現(xiàn)在幫助我們更好地處理異步操作,下面就跟隨小編一起來探索一下nextTick的原理與實現(xiàn)吧2024-02-02

