在vue-cli搭建的項目中增加后臺mock接口的方法
用vue-cli搭建一個前端開發(fā)環(huán)境確實是極其方便,在寫前端代碼肯定也是少不了需要調(diào)用后臺提供的業(yè)務(wù)接口進(jìn)行前后端交互,特別在敏捷開發(fā)中,前后端都要提前確定業(yè)務(wù)接口并進(jìn)行打樁,在開發(fā)過程中基本是沒有現(xiàn)成的后臺可以調(diào)用,基本上都是自己寫mock進(jìn)行模擬。
在vue-cli搭建的項目中,框架上用的是express的web框架,要做一個mock是很方便的。
假設(shè)前端頁面上需要獲取所有的新聞列表,那么就需要mock一個能夠返回所有新聞列表數(shù)據(jù)的接口。
接下來就在項目中實現(xiàn)mock功能。
腳手架生成項目
執(zhí)行命令用webpack模板生成一個名為vuestrap的項目(名字任意)
vue init webpack vue-mock-demo
在出現(xiàn)的各提示選項中,沒什么要求,為了方便,把不用的ESLint,unit tests,e2e都關(guān)掉(這些選項都隨意)。
? Project name vuestrap ? Project description A Vue.js project ? Author 省略 ? Vue build standalone ? Install vue-router? Yes ? Use ESLint to lint your code? No ? Setup unit tests with Karma + Mocha? No ? Setup e2e tests with Nightwatch? No
選項選完,項目也就生成了。
執(zhí)行命令,安裝腳手架創(chuàng)建的組件
npm install
創(chuàng)建mock
和build、config等文件夾同級創(chuàng)建一個mock文件夾。
為了要mock一個獲取新聞列表的數(shù)據(jù)接口,我們在mock文件夾下創(chuàng)建一個名為“router-news.js”的文件。
其中的內(nèi)容為:
var express = require('express');
var router = express.Router();
//對所有新聞的get進(jìn)行mock
router.get('/all', function(req, res, next) {
//響應(yīng)mock數(shù)據(jù)
res.json([{
title: 'news-title-1' ,
content: 'news-content-1'
},
{
title: 'news-title-2' ,
content: 'news-content-2'
}]);
});
module.exports = router;
這里的完整url應(yīng)該是“/mock/news/all”,在這里只寫了“/all”子路徑。
在build/dev-server.js文件的頭部require區(qū)域,require上面寫的router。
var mockRouterNews = require('../mock/router-news')
最后,調(diào)用app.use將講url和router關(guān)聯(lián)。
app.use('/mock/news', mockRouterNews)
在這里,通過將url的拆分,可以明確的把url進(jìn)行處理的模塊化,一種業(yè)務(wù)可以交給對應(yīng)的router進(jìn)行響應(yīng)處理,在使用app.use關(guān)聯(lián)所有的router的地方也能看得很清楚。
注意:
使用app.use關(guān)聯(lián)url和router的代碼一定要放在對“connect-history-api-fallback”組件的app.use前,否則關(guān)聯(lián)的url會被攔截掉,不會被mock的router正確響應(yīng)。

執(zhí)行
在命令行中執(zhí)行命令運行項目。
npm run dev
運行后,在瀏覽器的地址欄中補(bǔ)上mock的url并訪問,就能看到mock的數(shù)據(jù)了,很方便。

代碼 https://github.com/bobenut/demo-webfront/tree/master/d0007/vue-mock-demo
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue子組件向父組件通信與父組件調(diào)用子組件中的方法
這篇文章主要介紹了Vue子組件向父組件通信與父組件調(diào)用子組件中的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06
element中el-table表頭通過header-row-style設(shè)置樣式
有些時候需要給element-ui表頭設(shè)置不同樣式,本文主要介紹了element中el-table表頭通過header-row-style設(shè)置樣式,具有一定的參考價值,感興趣的可以了解一下2024-01-01
vue中動態(tài)出來返回的時間秒數(shù)(在多少秒顯示分、小時等等)
這篇文章主要給大家介紹了關(guān)于vue中動態(tài)出來返回的時間秒數(shù)(在多少秒顯示分、小時等等)的相關(guān)資料,文中通過代碼示例介紹的非常詳細(xì),對大家學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01
vue/cli3.0腳手架部署到nginx時頁面空白的問題及解決
這篇文章主要介紹了vue/cli3.0腳手架部署到nginx時頁面空白的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
vue2 mint-ui loadmore實現(xiàn)下拉刷新,上拉更多功能
這篇文章主要介紹了vue2 mint-ui loadmore實現(xiàn)下拉刷新,上拉更多功能,需要的朋友可以參考下2018-03-03
Vue后臺管理系統(tǒng)之實現(xiàn)分頁功能示例
本文主要介紹了Vue后臺管理系統(tǒng)之實現(xiàn)分頁功能,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12

