您当前的位置: 首页 > 

梁云亮

暂无认证

  • 2浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

vite3+vue3+ts环境中使用mock生成模拟数据

梁云亮 发布时间:2022-10-06 10:25:48 ,浏览量:2

第一步:安装qs

image.png

因为项目中用到了ts,所以还需要安装:

image.png

第二步:安装mock

image.png

第三步:创建Vue页面:Category.vue

  getById
  getById11
  getById12
  add
  updateById
  deleteById
  batchDelete
  list



import '@/mock/Category';  // 引入mock文件
import http from "@/utils/request";

function getById() {
  http.get("/productapi/category/getById/11").then(res => {
    console.log(res);
  })
}

function getById11() {
  http.get("/productapi/category/getById1?id=11&name=aaa&pwd=1234").then(res => {
    console.log(res);
  })
}

function getById12() {
  http.get("/productapi/category/getById1", {
    params: {
      id: 11
    }
  }).then(res => {
    console.log(res);
  })
}

function add() {
  http.post("/productapi/category/add", {
    id: 1234,
    name: "aaaaa"
  }).then(res => {
    console.log(res);
  })
}

function updateById() {
  http.put("/productapi/category/updateById", {
    id: 1234,
    name: "bbbb"
  }).then(res => {
    console.log(res);
  })
}

function deleteById() {
  http.delete("/productapi/category/deleteById/3333").then(res => {
    console.log(res);
  })
}

function batchDelete() {
  http.delete("/productapi/category/batchDelete", {
    params: {
      ids: "43,44,45"
    }
  }).then(res => {
    console.log(res);
  })
}

function list() {
  http.post("/productapi/category/list", {
    name: "aa",
    state: 1
  }).then(res => {
    console.log(res);
  })
}

第四步:用来生成mock数据的ts文件:Category.ts
import Mock from 'mockjs' // 引入mockjs
import qs from 'qs'

const Random = Mock.Random// Mock.Random 是一个工具类,用于生成各种随机数据

// Mock.setup({timeout: 1000})// 设置请求延时时间

let data = {
    code: 9999,
    msg: "这是Mock中的测试数据",
    data: "xxxxxxxxyyyyyyyyyyyzzzzzzzzzzz"
}

Mock.mock('/productapi/category/getById/11', "get", (id) => {
    console.log(id);
    return data;
});

Mock.mock(RegExp(`/productapi/category/getById1?.*`), "get", (config) => {
    //获取前端传递过来的请求参数
    let queryString = config.url.split("?")[1];
    let queryObject = qs.parse(queryString);
    //根据请求参数构造返回结果
    console.log(queryObject)

    return data;
});

Mock.mock(RegExp('/productapi/category/getById1?.*'), "get", (config) => {
    //获取前端传递过来的请求参数
    let queryString = config.url.split("?")[1];
    let queryObject = qs.parse(queryString);
    //根据请求参数构造返回结果
    console.log(queryObject)
    return data;
});

Mock.mock('/productapi/category/add', "post", (params) => {
    //获取前端传递过来的请求参数
    let queryString = params.body;
    let queryObject = JSON.parse(queryString);
    //根据请求参数构造返回结果
    console.log(queryObject)
    return data;
});

Mock.mock('/productapi/category/updateById', "put", (params) => {
    //获取前端传递过来的请求参数
    let queryString = params.body;
    let queryObject = JSON.parse(queryString);
    //根据请求参数构造返回结果
    console.log(queryObject)
    return data;
});

Mock.mock('/productapi/category/deleteById/3333', "delete", () => {
    return data;
});

Mock.mock('/productapi/category/batchDelete', "delete", (params) => {
    console.log(params);
    return data;
});

Mock.mock('/productapi/category/list', "post", (params) => {
    console.log(params);
    return data;
});
第五步:启动项目,测试

依次单击每个按钮进行测试,发现能够请求到相对应的测试数据

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0410s