f IOS-手把手搭建vue前后端管理系统-实现axios,使用mock进行拦截并进行假数据制作(十) - Powered by qidao123.com技术社区

手把手搭建vue前后端管理系统-实现axios,使用mock进行拦截并进行假数据制 ...

打印 上一主题 下一主题

主题 2229|帖子 2229|积分 6687

axios官网:https://www.axios-http.cn/docs/intro
Axios 是一个基于 promise 网络哀求库,作用于node.js 和欣赏器中。 它是 isomorphic 的(即同一套代码可以运行在欣赏器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (欣赏端) 则使用 XMLHttpRequests。
一、安装axios:npm  install axios -D

二、在Home.vue中进行axios的引入和使用

欣赏器的哀求的结果:有200的返回值,但是没有获取到api内里的数据,结果如下,每次刷新欣赏器都会获取一次get哀求:

三、有没有一种工具,可以拦截哀求数据,根据接口文档来制造数据,就要用到mockjs
mockjs的官网地点:http://mockjs.com/

安装mock:npm install mockjs -D
  1. (.venv) PS C:\Users\CMCC\PycharmProjects\VIIE3-后台重构\my-vue-app> npm install mockjs -D added 2 packages in 5s
复制代码
1、在api文件下创建mock.js
如果匹配到api/home/getTableData的路径就会进行拦截,使用mock内里的方法来获取假数据:
  1. import Mock from 'mockjs';
  2. // 引入mockdata下的home里面的api,也就是暴漏出去的gettableData()
  3. import homeApi from"./mockData/home"
  4. //mock用法里面的参数:1、拦截的路径,可以采用正则表达式进行编写;2、方法;3、制造出的假数据
  5. Mock.mock("/api\/home\/getTableData",'get',homeApi.getTableData()) ;
复制代码
系统截图如下:

2.界说处理哀求的方法
在api文件夹下创建mockData文件夹,在其中创建home.js,以后全部的mock的假数据都在这个文件内里实现:
  1. export default {
  2.   getTableData: () => {
  3.     return {
  4.       code: 200,
  5.       data: {
  6.         tableData: [
  7.           {
  8.             name: "比亚迪",
  9.             todayBuy: 500,
  10.             monthBuy: 3500,
  11.             totalBuy: 22000,
  12.           },
  13.           {
  14.             name: "小鹏",
  15.             todayBuy: 300,
  16.             monthBuy: 2200,
  17.             totalBuy: 24000,
  18.           },
  19.           {
  20.             name: "理想",
  21.             todayBuy: 800,
  22.             monthBuy: 4500,
  23.             totalBuy: 65000,
  24.           },
  25.           {
  26.             name: "华为",
  27.             todayBuy: 1200,
  28.             monthBuy: 6500,
  29.             totalBuy: 45000,
  30.           },
  31.           {
  32.             name: "问界",
  33.             todayBuy: 300,
  34.             monthBuy: 2000,
  35.             totalBuy: 34000,
  36.           },
  37.           {
  38.             name: "大众",
  39.             todayBuy: 350,
  40.             monthBuy: 3000,
  41.             totalBuy: 22000,
  42.           },
  43.         ],
  44.       },
  45.     }
  46.   }
  47. }
复制代码
3、在main.js内里去引入和注册这个mock的插件:
这个是拦截器的开关,当我们必要制造假数据,验证我们写的接口是否可用的时候就可以添加下面这个注册语句,如果使用的是真实的接口就把下面的语句注销就行。 import "@/api/mock.js"



  • 拦截之前:



  • 使用mock拦截之后,下面的哀求就不见了。

4、在home.vue内里使用axios进行哀求api:然后将数据在欣赏器控制台中进行打印:
  1. axios({
  2.     url:'/api/home/getTableData',
  3.     method:'get'
  4. }).then(res=>{
  5.     console.log(res.data)
  6. //  要学会制造数据,把交互的流程,接口的文档跑通
  7. //   有没有一种工具,可以拦截请求数据,根据接口文档来制造数据,就要用到mockjs
  8. })
复制代码
结果如下,拿到了具体的数据:

5、然后根据哀求拿到的数据进行HOME.VUE前端内容的完满让前端能够展示出获取的表格的数据
注:data内里另有一层tableData,在赋值的时候要特别注意,很容易出错。

  1. axios({
  2.     url:'/api/home/getTableData',
  3.     method:'get'
  4. }).then(res=>{
  5.     console.log(res.data)
  6. //  要学会制造数据,把交互的流程,接口的文档跑通
  7. //   有没有一种工具,可以拦截请求数据,根据接口文档来制造数据,就要用到mockjs
  8.     if(res.data.code==200){
  9.       console.log(res.data.data.tableData)
  10.       tableData.value=res.data.data.tableData
  11.     }
  12. })
复制代码

终极的结果,原来表格使用的是HOME.VUE内里静态的表格数据,现在使用的是axios接口内里,被mock拦截的制造的数据;只要将main.js内里的mock注销,那前端页面又会回到HOME.VUE内里使用静态数据的状态,大家可以切换了看下结果。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

三尺非寒

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表