vue项目使用mockjs具体步骤

vue项目使用mockjs具体步骤

  1. 在项目中安装 mockjs 和 axios
npm install --save-dev mockjs
npm install --save axios
  1. 在 api 目录下新建 request.js 和需要用到的 getMockData.js 文件

request.js

import axios from 'axios'
const service = axios.create({
  baseURL : "http://localhost:8080",
})
export default service

getMockData.js

import axios from '../request'
//数据列表接口
export const getList = () => axios.get("/list")
  1. 在 src 目录下,配置接口详情,新建 mock 文件夹,创建 mockServer.js 文件
import Mock from 'mockjs'
//import data from './data.json'

Mock.mock('http://localhost:8080/list', {
  code: 0, data:
  {
    'data|1000': [
      {  
        id: '@id',//随机id
        name: '@name',//随机名称
        nickName: '@last',//随机昵称
        phone: /^1[34578]\d{9}$/,//随机电话号码
        'age|11-99': 1,//年龄
        address: '@county(true)',//随机地址
        email: '@email',//随机邮箱
        isMale: '@boolean',//随机性别
        createTime: '@datetime',//创建时间
        avatar() {
          //用户头像
          return Mock.Random.image('100×100', Mock.Random.color(), '#757575', 'png', this.nickName)
        }
      }
    ]
  }

})

  1. 在 main.js 中导入 mockServer
import './mock/mockServer'
  1. 预览页面获取数据后的效果
<template>
 <div>
  <el-table :data="tableData" style="width: 600px;margin: 0 auto">
   <el-table-column label="随机ID" width="200">
    <template slot-scope="scope">
     <i class="el-icon-time"></i>
     <span style="margin-left: 10px">{{ scope.row.id }}</span>
    </template>
   </el-table-column>
   <el-table-column label="姓名" width="180">
    <template slot-scope="scope">
     <el-popover trigger="hover" placement="top">
      <p>姓名: {{ scope.row.name }}</p>
      <p>住址: {{ scope.row.address }}</p>
      <div slot="reference" class="name-wrapper">
       <el-tag size="medium">{{ scope.row.name }}</el-tag>
      </div>
      <p>邮箱: {{ scope.row.email }}</p>
      <p>性别: {{ scope.row.isMale }}</p>
      <p>昵称: {{ scope.row.nickName }}</p>
      <p>手机号: {{ scope.row.phone }}</p>
      <p>头像:</p>
     </el-popover>
    </template>
   </el-table-column>
   <el-table-column label="操作">
    <template slot-scope="scope">
     <el-button size="mini" @click="handleEdit(scope.$index, scope.row)"
      >编辑</el-button
     >
     <el-button
      size="mini"
      type="danger"
      @click="handleDelete(scope.$index, scope.row)"
      >删除</el-button
     >
    </template>
   </el-table-column>
  </el-table>
 </div>
</template>

<script>
import { getList } from "../../api/getData";
export default {
 data() {
  return {
   tableData: [
    //  {
    //   date: "2016-05-02",
    //   name: "王小虎",
    //   address: "上海市普陀区金沙江路 1518 弄",
    //  },
    //  {
    //   date: "2016-05-04",
    //   name: "王小虎",
    //   address: "上海市普陀区金沙江路 1517 弄",
    //  },
    //  {
    //   date: "2016-05-01",
    //   name: "王小虎",
    //   address: "上海市普陀区金沙江路 1519 弄",
    //  },
    //  {
    //   date: "2016-05-03",
    //   name: "王小虎",
    //   address: "上海市普陀区金沙江路 1516 弄",
    //  },
   ],
  };
 },
 methods: {
  handleEdit(index, row) {
   console.log(index, row);
  },
  handleDelete(index, row) {
   console.log(index, row);
  },

  async getMockList() {
   try {
    const result = await getList();
    //console.log(result);
    if (result.data.code == 0) {
     this.tableData = result.data.data.data;
    }
    //console.log(result.data.data.data);
   } catch (error) {
    console.log(error);
   }
  },
 },

 mounted() {
  this.getMockList();
 },

};
</script>

在这里插入图片描述

特别注意

  1. 需要将接口返回的数据 console.log 打印后,才能从控制台看见数据,直接在 network 是看不到请求的接口的

  2. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZBJD0iPq-1688439771975)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230704093956265.png)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue使用Mock.js可以帮助我们在开发过程中模拟接口返回的数据,方便前端进行接口调试和开发。下面是使用Mock.js的步骤: 1. 安装Mock.js:在项目的根目录下执行以下命令安装Mock.js: ``` npm install mockjs --save-dev ``` 2. 创建一个Mock数据文件:在项目的`src`目录下创建一个`mock`文件夹,并在该文件夹内新建一个`data.js`文件(或者其他命名)作为Mock数据的存放文件。 3. 编写Mock数据:在`data.js`文件中编写自定义的Mock数据。例如,你可以定义一个返回用户数据的接口: ```javascript import Mock from 'mockjs'; // 模拟一个返回用户数据的接口 Mock.mock('/api/users', 'get', { 'list|5': [{ 'id|+1': 1, 'name': '@cname', 'age|18-60': 1, 'address': '@city', }], }); ``` 4. 在项目中引入Mock数据:在项目的入口文件(一般是`main.js`)中引入Mock数据: ```javascript import './mock/data'; ``` 5. 使用Mock数据:在需要使用模拟数据的地方,直接发送请求即可。例如,在Vue组件中使用Axios发送请求: ```javascript import axios from 'axios'; export default { created() { axios.get('/api/users') .then(response => { console.log(response.data.list); }) .catch(error => { console.error(error); }); }, }; ``` 这样,在开发环境中,当发送到`/api/users`的请求时,Mock.js会拦截该请求,并返回预先定义好的Mock数据。 另外,需要注意的是,在项目的生产环境中应该移除Mock.js的相关代码,避免影响真实接口的调用。 希望能帮到你!如有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值