vue3使用Mock.js模拟接口数据

开发项目的时候,如果后端接口没有出来,前端工程师也不必非得等接口出来才进行下步开发。可以使用mock.js来模拟接口数据,以下就是使用vue3设置hook函数来封装axios请求,配合mock.js来实现的代码,mock的使用借鉴了大佬的博文https://blog.csdn.net/possible_fish/article/details/123776419

一、安装mock.js文件

执行npm命令:

        npm install mockjs

vue3使用Mock.js模拟接口数据_第1张图片

二、引入mock文件,并定义需要的数据字段

vue3使用Mock.js模拟接口数据_第2张图片 

const Mock = require("mockjs");
let data = Mock.mock({
    "data|6": [ //生成6条数据 数组
        {
            "shopId|+1": 1,//生成商品id,自增1
            "shopMsg": "@ctitle(10)", //生成商品信息,长度为10个汉字
            "shopName": "@cname",//生成商品名 , 都是中国人的名字
            "shopTel": /^1(5|3|7|8)[0-9]{9}$/,//生成随机电话号
            "shopAddress": "@county(true)", //随机生成地址
            "shopStar|1-5": "★", //随机生成1-5个星星
            "salesVolume|30-1000": 30, //随机生成商品价格 在30-1000之间
            "shopLogo": "@Image('100x40','#c33', '#ffffff','小北鼻')", //生成随机图片,大小/背景色/字体颜色/文字信息
            "food|2": [ //每个商品中再随机生成2个food
                {
                    "foodName": "@cname", //food的名字
                    "foodPic": "@Image('100x40','#c33', '#ffffff','小可爱')",//生成随机图片,大小/背景色/字体颜色/文字信息
                    "foodPrice|1-100": 20,//生成1-100的随机数
                    "aname|2": [
                        { 
                            "aname": "@cname", 
                            "aprice|30-60": 20 
                        }
                    ]
                }
            ]
        }
    ]
})
Mock.mock(/goods\/goodAll/, 'post', () => { //三个参数。第一个:路径,第二个:请求方式post/get,第三个:回调,返回值
    return data
})

 

三、全局引入定义好的mock模拟接口文件,类似于接口文件

vue3使用Mock.js模拟接口数据_第3张图片 

// 引入mock模拟数据的文件
import  "/src/interfaceMock/shop/shop.js";

四、在页面上请求,下面的第一张图是使用hook函数封装的axios请求vue3使用Mock.js模拟接口数据_第4张图片 

import { ref } from "vue";
// 引入axios
import axios from "axios";
// 发送ajax的请求
export default function (url:string) {
  // 加载的状态
  const loading = ref(true)
  // 请求成功的数据
  const data = ref(null)
  // 错误信息
  const errorMsg = ref('')
  // 发送请求
  axios.post(url).then(respose => {
    // 加载的状态
    loading.value = false
    data.value = respose.data
    console.log('测试',respose.data)
  }).catch(error => {
    // 加载的状态
    loading.value = false
    errorMsg.value = error.message || '未知错误'
  })
  return {
    loading,
    data,
    errorMsg
  }
}

vue3使用Mock.js模拟接口数据_第5张图片



 

五、请求的数据结果 返回

 vue3使用Mock.js模拟接口数据_第6张图片

 

你可能感兴趣的:(typescript,前端,vue,javascript,前端,vue.js)