vue項目引入mock.js 簡單使用


解決的痛點

1、開發時,后端還沒完成數據輸出,前端只好寫靜態模擬數據。
2、在頁面js上寫模擬json數據,數據太長了,將數據寫在js文件里,完成后挨個改url。某些邏輯復雜的代碼,加入或去除模擬數據時得小心翼翼。
3、想要盡可能還原真實的數據,要么編寫更多代碼,要么手動修改模擬數據。
4、特殊的格式,例如IP,隨機數,圖片,地址,需要去收集

優點

1、前后端分離
  讓前端工程師獨立於后端進行開發。
2、增加測試的真實性
  通過隨機數據,模擬各種場景。
3、 方便單測開發
通過模擬隨機數據,增加單元測試的可靠性。
4、用法簡單 方便擴展
  符合直覺的接口,支持支持擴展更多數據類型,支持自定義函數和正則。
5、數據類型豐富
  支持生成隨機的文本、數字、布爾值、日期、郵箱、鏈接、圖片、顏色等。
6、項目的轉接上更加方便 幾乎不用修改現有代碼
在已有接口文檔的情況下,我們可以直接按照接口文檔來開發,將相應的字段寫好,在接口完成 之后,只需要改變url地址即可。
7、 不涉及跨域問題,

使用

項目背景: vue+webpack +axios 構建
1.安裝 mockjs 依賴

npm install mockjs

2.在原有的項目下創建 mock文件夾 最好不要創建到src里面,不參與項目打包構建
image
mock/index.js

import Mock from 'mockjs'
import '@/mock/user/login'


// 設置全局延時
Mock.setup({
  timeout: '300-600'
})

mock/user/login 登錄接口的mock數據封裝

import Mock from 'mockjs'
import '@/mock/extend'

const user = Mock.mock({
  name: '@ADMIN',
  avatar: '@AVATAR',
  address: '@CITY',
  welcome: '@WELCOME',
  timefix: '@TIMEFIX',
  position: '@POSITION'
})

Mock.mock('/login', 'post', ({body}) => {
  let result = {}
  const {name, password} = JSON.parse(body)

  if (name !== 'admin' || password !== '888888') {
    result.code = -1
    result.message = '賬戶名或密碼錯誤(admin/888888)'
  } else {
    result.code = 0
    result.message = Mock.mock('@TIMEFIX') + ',歡迎回來'
    result.data = {}
    result.data.user = user
  }
  return result
})

在 項目的入口文件main.js 進行項目的引入

//開發環境使用mock
if (process.env.NODE_ENV === 'production') {
  require('../mock')
}
//import '@/mock'  //引入

mock的文件位置沒有較為死板的寫法 比較靈活 可參考 antdv-vue-adminelement-vue-admin

單獨的mock模塊使用,要使用的話要在mian.js里面進行引用 mock模塊的統一暴露的index.js文件即可較為簡單直接,mock會攔截相對應的 axios請求

mock api

mock語法可參考
https://github.com/nuysoft/Mock/wiki/Mock.mock()
http://mockjs.com/0.1/#Web

Mock.mock( rurl?, rtype?, template ) )
// 或者
Mock.mock( rurl, rtype, function( options ) )
/**
*@rurl 可選 表示要攔截的url,可以使字符串,也可以是正則
*@rtype 可選 表示要攔截的ajax請求方式,如get、post
*@template 可選 數據模板,可以是對象也可以是字符串
*@function 可選 表示用於生成響應數據的函數
*/

關於mock模塊的封裝
可參考
https://www.jianshu.com/p/c5568910e946
https://www.cnblogs.com/-wenli/p/13828521.html
antdv-vue-admin
element-vue-admin


補充項目截圖.
mock模塊搭建 源碼地址:https://gitee.com/sink_zjx/vue-mock-demo
image
mock注入到項目里 注意項目要有 axios
image

在頁面上發送axios請求
賬號密碼正確
image
密碼錯誤
image



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM