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ù)會打包進app.js文件里面,導(dǎo)致文件大、首屏渲染慢;而且,在js文件里面mock的數(shù)據(jù)量超過webpack限制的時候,打包會失敗
- 3、遠程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ù)器運行。
以上,因為一個演示平臺需要,數(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)境的詳細教程
- vue項目中mock.js的使用及基本用法
- Vue+Mock.js模擬登錄和表格的增刪改查功能
- 在Vue框架中配置Mock服務(wù)器的方法
相關(guān)文章
vue實現(xiàn)簡易圖片左右旋轉(zhuǎn),上一張,下一張組件案例
這篇文章主要介紹了vue實現(xiàn)簡易圖片左右旋轉(zhuǎn),上一張,下一張組件案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07element?table數(shù)據(jù)量太大導(dǎo)致網(wǎng)頁卡死崩潰的解決辦法
當(dāng)頁面數(shù)據(jù)過多,前端渲染大量的DOM時,會造成頁面卡死問題,下面這篇文章主要給大家介紹了關(guān)于element?table數(shù)據(jù)量太大導(dǎo)致網(wǎng)頁卡死崩潰的解決辦法,需要的朋友可以參考下2023-02-02vue excel上傳預(yù)覽和table內(nèi)容下載到excel文件中
這篇文章主要介紹了vue excel上傳預(yù)覽和table內(nèi)容下載到excel文件中,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12