這次帶給大家怎樣在vue-cli搭建專案內增加後台mock接口,在vue-cli搭建專案內增加後台mock接口的注意事項有哪些,下面就是實戰案例,一起來看一下。
用vue-cli搭建一個前端開發環境確實是極其方便,在寫前端代碼肯定也是少不了需要調用後台提供的業務接口進行前後端交互,特別在敏捷開發中,前後端都要提前確定業務介面並進行打樁,在開發過程中基本上是沒有現成的後台可以調用,基本上都是自己寫mock進行模擬。
在vue-cli搭建的專案中,框架上用的是express的web框架,要做一個mock是很方便的。
假設前端頁面上需要取得所有的新聞列表,那麼就需要mock一個能夠傳回所有新聞列表資料的介面。
接下來就在專案中實作mock功能。
腳手架產生專案
執行指令用webpack模板產生一個名為vuestrap的專案(名字任意)
vue init webpack vue-mock-demo
#在出現的各提示選項中,沒什麼要求,為了方便,把不用的ESLint,unit tests,e2e都關掉(這些選項都隨意)。
? 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
選項選完,專案也就生成了。
執行指令,安裝由鷹架建立的元件
npm install
建立mock
和build、config等資料夾同級建立一個mock資料夾。
為了要mock一個取得新聞清單的資料接口,我們在mock資料夾下建立一個名為「router-news.js」的檔案。
其中的內容為:
var express = require('express'); var router = express.Router(); //对所有新闻的get进行mock router.get('/all', function(req, res, next) { //响应mock数据 res.json([{ title: 'news-title-1' , content: 'news-content-1' }, { title: 'news-title-2' , content: 'news-content-2' }]); }); module.exports = router;
這裡的完整url應該是“/mock/news/all”,這裡只寫了“/all”子路徑。
在build/dev-server.js檔案的頭部require區域,require上面寫的router。
var mockRouterNews = require('../mock/router-news')
最後,呼叫app.use將講url和router關聯。
app.use('/mock/news', mockRouterNews)
在這裡,透過將url的拆分,可以明確的把url進行處理的模組化,一種業務可以交給對應的router進行回應處理,在使用app .use關聯所有的router的地方也能看得很清楚。
注意:
使用app.use關聯url和router的程式碼一定要放在對「connect-history-api-fallback」元件的app.use前,否則關聯的url會被攔截掉,不會被mock的router正確回應。
執行
在命令列中執行命令執行專案。
npm run dev
運行後,在瀏覽器的網址列中補上mock的url並訪問,就能看到mock的數據了,很方便。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是怎樣在vue-cli搭建專案內增加後台mock接口的詳細內容。更多資訊請關注PHP中文網其他相關文章!