前端MOCK数据的三种方法

MOCK数据

1. 本地加载请求静态json文件的形式

在public下建立文件,/mock/user/login.json

App.vue:

mounted() {
    
    //本地加载请求静态json文件的形式
    this.axios.get(/mock/user/login.json).then( (res) => {
        this.res = res
    })
  }

login.json:

{
  "status":0,
  "data": {
    "id": 12,
    "username":"admin",
    "email":"admin#51.purse.com",
    "phone":null,
    "role": 0,
    "createTime":1479048325000,
    "updateTime":1479048325000
  },
  "msg":"success"
}

vue.config.js:

module.exports = {
  devServer: {
    host:localhost,
    port: 8081,
    proxy: {
      /api: {
        target: http://localhost:8081/#,
        changeOrigin: true,
        pathRewrite:{
          /api:
        }
      }
    }
  }
}

2. 使用easy-mock平台提供MOCK数据

app.vue

mounted() {
   
    //使用easy-mock 网站做模拟接口
    this.axios.get(/user/login).then(res => {
      this.res = res
    }) 
    
  }
}

main.js:

axios.defaults.baseURL = easy-mock网站生成项目mock数据地址  //用未来实际地址替换
...
axios.get(/user/login).then( res => {})

3. 本地集成 Mockjs, npm安装,实现数据Mock

(没有发真正请求,代码层面的拦截)

安装: cnpm i mockjs --save-dev

main.js:中使用mock开关,即什么时候用mock数据,上线使用后端数据就改成false。

注意: 区别于import是编译时加载,require是执行时加载,如果用import(./mock/api)则会每次加载都被mock拦截。

const mock = true
if(mock){
    // require是执行时加载,如果mock=false,则不用加载。
    require(./mock/api.js)
}

建立src/mock/api.js ,模拟请求接口:

import Mock from mockjs
//Mock.mock(请求地址,返回值)
Mock.mock(/api/user/login,{
  "status": 0,
  "data": {
    "id|10001-11000": 12,
    "username": "@cname",
    "email": "admin@51purse.com",
    "phone": null,
    "role": 0,
    "createTime": 1479048325000,
    "updateTime": 1479048325000
  }
});

---------------------------------------分割线00---------------------------------------------------------------

Main.js中的

①axios.defaults.baseURL = easy-mock生成的地址

下面两个涉及到跨域的:

②axios.defaults.baseURL = api //Proxy跨域时 -- 根据前端跨域的方式调整(vue.config.js)

③axios.defaults.baseURL = env.baseURL;// 根据CORS/JSONP跨域 (写在env.js里面,修改这里的接口地址)

这三种写法都是要根据实际情况选择。这三种Mock请求数据使用情况互相切换就行了。

优先使用: npm安装mockjs > easy-mock(网络不稳) > 本地json

经验分享 程序员 微信小程序 职场和发展