Easy-Mock 全解及其详细使用

在这里插入图片描述

一小池勺
❤️❤️❤️ ❤️❤️❤️❤️
胸有惊雷而面如平湖者,可拜上将军也。

前言

工具的使用,对于开发是及其有利的,这里会给大家分享一个Mock假接口完整的是使用历程。

Easy-Mock传送门

在这里插入图片描述

在这里插入图片描述

界面介绍

数据

这么好的Mock数据网站,咋这么少用户呢?是不是这个行业一点都不卷?这么点用户怎么调用这么多次呢?这个行业是不是好累?

在这里插入图片描述

工作台

一些再使用的接口就可以丢到工作台,方便使用。

在这里插入图片描述

我的项目 & 团队项目

在这里插入图片描述

在这里插入图片描述

立项

点击加号

在这里插入图片描述

新建好的一个项目,我们只要添加接口就可以了。

在这里插入图片描述

编辑接口数据

这属于是比较无脑的操作,你想要什么数据,在这个 Json 文件里面定义就可以。

在这里插入图片描述

预览

右侧模拟发起请求,左侧响应:

在这里插入图片描述

Mock 实战

  1. 获取全部文章信息
  2. 根据文章id,获取文章详情

Mock 数据 1

{
    "success": true,
    "code": 10000,
    "message": "success",
    "result": {
        "total": "381",
        "pageTotal": 39,
        "rows": [
            {
                "id": "41156",
                "questionNo": "mj27483",
                "stem": "百度前端面经",
                "content": "虽然百度这几年发展势头落后于AT,甚至快被京东赶上了,毕竟瘦死的骆驼比马大,面试还是相当有难度和水准的。一面1.询问你的项目经验、学习经历、主修语言(照实答)2.解释ES6的暂时性死区( let 和 var 的区别)3.箭头函数、闭包、异步(老生常谈,参见上文)4.高阶函数(呃……我真不太清楚这是啥,听起来挺像闭包的)5.求N的阶乘末尾有多少个0,在线码代码或讲思路(求因数,统计2、5、10的个数",
                "subjectName": "前端与移动开发",
                "questionType": 8,
                "difficulty": 1,
                "views": "315",
                "likeCount": "44",
                "questionBankType": 9,
                "creatorName": "靑春,那么骚",
                "creatorAvatar": "http://teachoss.itheima.net/heimaQuestionMiniapp/%E5%AE%98%E6%96%B9%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F%402x.png",
                "createdAt": "2022-01-20",
                "likeFlag": 0
            },
            {
                "id": "41169",
                "questionNo": "mj27496",
                "stem": "宇宙头条校招前端面经",
                "content": "笔者读大三,前端小白一枚,正在准备春招,人生第一次面试,投了头条前端,总共经历了四轮技术面试和一轮hr面,不多说,直接上题 一面1.自我介绍,然后问了为什么学习前端2.算法:实现36进制转换 3.简述https原理,以及与http的区别 4.操作系统中进程和线程怎么通信 5.node中cluster是怎样开启多进程的,并且一个端口可以被多个进程监听吗 6.实现原生ajax 7.vue-router",
                "subjectName": "前端与移动开发",
                "questionType": 8,
                "difficulty": 1,
                "views": "320",
                "likeCount": "43",
                "questionBankType": 9,
                "creatorName": "不风流怎样倜傥",
                "creatorAvatar": "http://teachoss.itheima.net/heimaQuestionMiniapp/%E5%AE%98%E6%96%B9%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F%402x.png",
                "createdAt": "2022-01-20",
                "likeFlag": 0
            },
            {
                "id": "41145",
                "questionNo": "mj27472",
                "stem": "字节跳动前端开发面试题总结",
                "content": "【一面】1.首先:自我介绍+项目2.instanceOf实现的原理3.typeof4.js的类型5.给了一段setTimeout、Promise判断输出顺序6.事件循环7.BFC8.position的属性,fixed是相对于什么定位的9.闭包10.new之后发生了什么11.es6有什么觉得好用12.__proto__是用来做什么的13.强缓存/协商缓存14.bind、apply、call15.如何",
                "subjectName": "前端与移动开发",
                "questionType": 8,
                "difficulty": 1,
                "views": "418",
                "likeCount": "34",
                "questionBankType": 9,
                "creatorName": "醉卧九天",
                "creatorAvatar": "http://teachoss.itheima.net/heimaQuestionMiniapp/%E5%AE%98%E6%96%B9%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F%402x.png",
                "createdAt": "2022-01-20",
                "likeFlag": 0
            },
            {
                "id": "41144",
                "questionNo": "mj27471",
                "stem": "前端小白的知乎一二面面试",
                "content": "    知乎面试体验很棒,推一波知乎二面面试官Lucas大佬,是《React状态管理和同构实战》的作者,二面没有常规的面试题,会根据简历中项目不断深入,提出让你有思考有收获的问题,我认为这是面试最好的状态~。知乎的面试有点久了,当时也没有记录下来,大致回忆一下(遗漏的应该很多)~一面:https握手过程?http缓存?(其实http缓存除了强缓存和协商缓存,还有一个自发的启发式缓存,具体可以查查r",
                "subjectName": "前端与移动开发",
                "questionType": 8,
                "difficulty": 1,
                "views": "266",
                "likeCount": "31",
                "questionBankType": 9,
                "creatorName": "五行缺钱",
                "creatorAvatar": "http://teachoss.itheima.net/heimaQuestionMiniapp/%E5%AE%98%E6%96%B9%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F%402x.png",
                "createdAt": "2022-01-20",
                "likeFlag": 0
            },
            {
                "id": "41187",
                "questionNo": "mj27514",
                "stem": "快手三面+HR面-前端工程师面经奉上~秋招",
                "content": "秋招,马不停蹄的面试中,快手本来不打算去,面试一下攒经验,不过整个的面试过程还是比较舒服的,面试完勤于总结真的很重要,目前已经拿到小米、阿里、腾讯、河狸家等五家offer,心仪的公司还没开始面,后续持续更新吧快手一面判断链表是否有环删除链表倒数第n个判断回文给定数组,统计出现次数js数据类型Symbol的特点 独一无二let和const的区别tcp和udp的区别http有哪些请求头或响应头以及有哪",
                "subjectName": "前端与移动开发",
                "questionType": 8,
                "difficulty": 1,
                "views": "421",
                "likeCount": "17",
                "questionBankType": 9,
                "creatorName": "~星星眼",
                "creatorAvatar": "http://teachoss.itheima.net/heimaQuestionMiniapp/%E5%AE%98%E6%96%B9%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F%402x.png",
                "createdAt": "2022-01-20",
                "likeFlag": 0
            },
            {
                "id": "41141",
                "questionNo": "mj27468",
                "stem": "图森未来视频一面复盘总结",
                "content": "这个面试有点东西,只面试了一面,约的第二面我打电话取消了(因为二面之前有了其他公司的offer)我对这个公司做过一些调查,觉得不是很大,面试会比较简单吧,但一面过程中我还挺多不会的,让我觉得它高大尚起来了。1.关于项目的问题太多了,我本身做的高仿小米商城,就是跟着教程做的,所以深入一点的东西都回答不上来,他问,做项目的过程中有没有遇到什么难点,我说有,项目我用的Vue框架,但子组件更新后,父组件不",
                "subjectName": "前端与移动开发",
                "questionType": 8,
                "difficulty": 1,
                "views": "167",
                "likeCount": "22",
                "questionBankType": 9,
                "creatorName": "非常可乐",
                "creatorAvatar": "http://teachoss.itheima.net/heimaQuestionMiniapp/%E5%AE%98%E6%96%B9%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F%402x.png",
                "createdAt": "2022-01-20",
                "likeFlag": 1
            },
            {
                "id": "41172",
                "questionNo": "mj27499",
                "stem": "21届秋招猿辅导前端面经笔试",
                "content": "笔试给一定的钱去买物品,算性价比最高的方案,用递归来写的传卡片记录最大值(和网易的教师认证那道题比较像) 解析文档(类似vue的模板解析 解析v-if v-for {{}} 方法) 一面自我介绍项目交流了很多,包括一些问题和学到的东西对git的使用vue的常用optionvue生命周期流程vue的原理es6使用了哪些东西原型链的理解(编程题)解析字符串,从url上提取键值对css盒模型反问二面自我",
                "subjectName": "前端与移动开发",
                "questionType": 8,
                "difficulty": 1,
                "views": "547",
                "likeCount": "7",
                "questionBankType": 9,
                "creatorName": "多吉利奥",
                "creatorAvatar": "http://teachoss.itheima.net/heimaQuestionMiniapp/%E5%AE%98%E6%96%B9%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F%402x.png",
                "createdAt": "2022-01-20",
                "likeFlag": 1
            },
            {
                "id": "41158",
                "questionNo": "mj27485",
                "stem": "去哪儿网前端面经",
                "content": "距离去哪儿网笔试快一个月了,我都以为我凉了,结果在北京面腾讯的当天下午连续接到三个电话……只有一轮技术面+一轮HR面,然后就给我发了口头offer,相当地干脆利落…… 去哪儿网好像更注重考察你对框架、工具的应用,对于基础考得反而不多。而且还考了我 jQuery ,别的公司都不怎么考的…… 一面1.webpack 用过吗?2.如何处理图片、 CSS 文件?(各种 loader )3.使用 flex ",
                "subjectName": "前端与移动开发",
                "questionType": 8,
                "difficulty": 1,
                "views": "216",
                "likeCount": "15",
                "questionBankType": 9,
                "creatorName": "孤老序",
                "creatorAvatar": "http://teachoss.itheima.net/heimaQuestionMiniapp/%E5%AE%98%E6%96%B9%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F%402x.png",
                "createdAt": "2022-01-20",
                "likeFlag": 0
            },
            {
                "id": "41165",
                "questionNo": "mj27492",
                "stem": "字节跳动前端面经",
                "content": "一面1、 http1.0/2.0/3.02、3.0的tcp复用3、 网络攻击知道哪些4、 浏览器缓存5、代码: 实现LRU6、margin和padding的区别7、 实现水平居中和垂直居中的方法8、冒泡9、 事件分发二面1、排序算法2、常见的数据结构有哪些3、网络攻击4、tcp和udp的区别5、闭包6、 js实现person类7、代码:实现堆排序8、代码:最大子序和            ",
                "subjectName": "前端与移动开发",
                "questionType": 8,
                "difficulty": 1,
                "views": "367",
                "likeCount": "7",
                "questionBankType": 9,
                "creatorName": "不想翻身的咸鱼",
                "creatorAvatar": "http://teachoss.itheima.net/heimaQuestionMiniapp/%E5%AE%98%E6%96%B9%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F%402x.png",
                "createdAt": "2022-01-20",
                "likeFlag": 0
            },
            {
                "id": "41166",
                "questionNo": "mj27493",
                "stem": "阿里巴巴前端面经",
                "content": "电话面1、简单自我介绍, 做过哪些项目, 使用哪些技术栈?2、如何看待前端框架选型? 3、vue的如何实现双向绑定的 ? 4、react 虚拟DOM 是什么? 如何实现? 说一下diff算法? 5、平时如何学习, 最近接触了解了哪些新的知识? 技术一面1、简单自我介绍, 介绍一下你的项目, 技术栈?2、react和vue的比较? 3、React Diff 算法? 4、观察者模式实现? 5、http",
                "subjectName": "前端与移动开发",
                "questionType": 8,
                "difficulty": 1,
                "views": "323",
                "likeCount": "8",
                "questionBankType": 9,
                "creatorName": "轮獄道",
                "creatorAvatar": "http://teachoss.itheima.net/heimaQuestionMiniapp/%E5%AE%98%E6%96%B9%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F%402x.png",
                "createdAt": "2022-01-20",
                "likeFlag": 0
            }
        ]
    }
}

Mock 数据 2

某篇文章详情

{
    "success": true,
    "code": 10000,
    "message": "success",
    "result": {
        "id": "41166",
        "questionNo": "mj27493",
        "stem": "阿里巴巴前端面经",
        "content": "电话面1、简单自我介绍, 做过哪些项目, 使用哪些技术栈?2、如何看待前端框架选型? 3、vue的如何实现双向绑定的 ? 4、react 虚拟DOM 是什么? 如何实现? 说一下diff算法? 5、平时如何学习, 最近接触了解了哪些新的知识? 技术一面1、简单自我介绍, 介绍一下你的项目, 技术栈?2、react和vue的比较? 3、React Diff 算法? 4、观察者模式实现? 5、http",
        "subjectName": "前端与移动开发",
        "questionType": 8,
        "difficulty": 1,
        "views": "323",
        "likeCount": "8",
        "questionBankType": 9,
        "creatorName": "轮獄道",
        "creatorAvatar": "http://teachoss.itheima.net/heimaQuestionMiniapp/%E5%AE%98%E6%96%B9%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F%402x.png",
        "createdAt": "2022-01-20",
        "likeFlag": 0
    }
}

调用 Mock 接口

该 Demo 文件接口如下:

在这里插入图片描述

router/index.js

import Vue from 'vue'
import VueRouter from 'vue-router'
import Layout from '../views/Layout'
import ArticleDetail from '../views/ArticleDetail'
import Article from '../views/Article'
import Collect from '../views/Collect'
import Like from '../views/Like'
import User from '../views/User'
Vue.use(VueRouter)

const router = new VueRouter({
  routes: [
    {
      path: '/',
      component: Layout,
      redirect: '/article',
      // 通过children配置项,可以配置嵌套子路由
      // 1.在children配置项中,配规则
      // 2.准备二级路由出口
      children: [
        { path: '/article', component: Article },
        { path: '/collect', component: Collect },
        { path: '/like', component: Like },
        { path: 'user', component: User }
      ]
    },
    {
      path: '/detail/:id',
      component: ArticleDetail
    }
  ]
})

export default router

views/Article.vue

<template>
  <div class="article-page">
    <div
    v-for="item in articles" :key="item.id" @click="$router.push(`/detail/${ item.id }`)" class="article-item">
      <div class="head">
        <img :src="item.creatorAvatar" alt="" />
        <div class="con">
          <p class="title">{{ item.stem }}</p>
          <p class="other">{{ item.creatorName }} | {{ item.createdAt }}</p>
        </div>
      </div>
      <div class="body">
        {{ item.content }}
      </div>
      <div class="foot">点赞 {{ item.likeCount }} | 浏览 {{ item.views }}</div>
    </div>
  </div>
</template>

<script>
import axios from 'axios'
export default {
  name: 'ArticlePage',
  data () {
    return {
      articles: []
    }
  },
  async created () {
    const res = await axios.get('https://mock.presstime.cn/mock/658c5914ec1ac42222a3a9b5/getArticals/getAll')
    this.articles = res.data.result.rows
    console.log(res)
  }
}
</script>

<style lang="less" scoped>
.article-page {
  background: #f5f5f5;
}
.article-item {
  margin-bottom: 10px;
  background: #fff;
  padding: 10px 15px;
  .head {
    display: flex;
    img {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      overflow: hidden;
    }
    .con {
      flex: 1;
      overflow: hidden;
      padding-left: 15px;
      p {
        margin: 0;
        line-height: 1.5;
        &.title {
          text-overflow: ellipsis;
          overflow: hidden;
          width: 100%;
          white-space: nowrap;
        }
        &.other {
          font-size: 10px;
          color: #999;
        }
      }
    }
  }
  .body {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    margin-top: 10px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .foot {
    font-size: 12px;
    color: #999;
    margin-top: 10px;
  }
}
</style>

views/ArticleDetail.vue

使用了动态路由。

<template>
  <div class="article-detail-page" v-if="article.id">
    <nav class="nav"><span @click="$router.back()" class="back">&lt;</span> 面经详情</nav>
    <header class="header">
      <h1>{{ article.stem }}</h1>
      <p>{{ article.createdAt }} | {{ article.views }} 浏览量 | {{ article.likeCount }} 点赞数</p>
      <p>
        <img
          :src="article.creatorAvatar"
          alt=""
        />
        <span>{{ article.creatorName }}</span>
      </p>
    </header>
    <main class="body">
     {{ article.content }}
    </main>
  </div>
</template>

<script>
// 请求地址: https://mock.boxuegu.com/mock/3083/articles/:id
// 请求方式: get
import axios from 'axios'
export default {
  name: 'ArticleDetailPage',
  data () {
    return {
      article: {}
    }
  },
  async created () {
    const { data } = await axios.get(`https://mock.boxuegu.com/mock/3083/articles/${this.$route.params.id}`)
    this.article = data.result
    console.log(this.article)
  }
}
</script>

<style lang="less" scoped>
.article-detail-page {
  .nav {
    height: 44px;
    border-bottom: 1px solid #e4e4e4;
    line-height: 44px;
    text-align: center;
    .back {
      font-size: 18px;
      color: #666;
      position: absolute;
      left: 10px;
      top: 0;
      transform: scale(1, 1.5);
    }
  }
  .header {
    padding: 0 15px;
    p {
      color: #999;
      font-size: 12px;
      display: flex;
      align-items: center;
    }
    img {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      overflow: hidden;
    }
  }
  .body {
    padding: 0 15px;
  }
}
</style>

结语

胸有惊雷而面如平湖者,可拜上将军也。

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一小池勺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值