iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue-cli如何实现异步请求返回mock模拟数据
  • 596
分享到

vue-cli如何实现异步请求返回mock模拟数据

2023-06-29 12:06:19 596人浏览 薄情痞子
摘要

这篇文章主要为大家展示了“Vue-cli如何实现异步请求返回mock模拟数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue-cli如何实现异步请求返回mock模拟数据”这篇文章吧。  在前

这篇文章主要为大家展示了“Vue-cli如何实现异步请求返回mock模拟数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue-cli如何实现异步请求返回mock模拟数据”这篇文章吧。

  在前后端分离开发的过程中,前端开发过程中,页面的数据显示一般都是写死的静态数据,也就是没有经过接口,直接写死在代码中的,在后端给出接口后,再替换为接口数据,为了减少对接成本,mock就出现了。通过预先跟服务器端约定好的接口,模拟请求数据甚至逻辑,能够让前端开发更加独立自主,不会被服务端的开发所阻塞。

  网上有不少使用mockjs模拟数据的文章,但基本都是本地拦截请求返回数据,在network中没有发出任何的请求,本地调试起来很不好,只能通过console.log来调试。为了实现真正的异步请求,那么就需要真正的服务器接口,而在开发vue-cli项目时,本地开发运行启动命令后,实际就是启动了一个本地服务器,那么只要把接口地址都在本地服务器中配置并使用mock返回数据就可以实现真正的异步请求了,这样调试就和真正的请求一模一样了。

开始实现

  因为是vue-cli项目,请先安装node和npm。

  1、首先,需要全局安装vue-cli:

 1、首先,需要全局安装vue-cli:

> npm install -g @vue-cli

  2、创建vue-cli项目:

> vue create vue-mock

  创建成功后进入项目根目录,运行npm run serve启动,应该可以成功访问vue示例页面  

  本示例使用的版本是vue-cli 4.5.13、vue3webpack4,如果发现某个配置不生效,请留意是否已经被废弃。

  3、安装axiOS

> npm install axios -S

  4、main.js添加aixos,修改如下

// main.jsimport { createApp } from 'vue'import App from './App.vue'import axios from 'axios'const vueApp = createApp(App)vueApp.config.globalProperties.$axios = axios // vue3与vue2的区别,不再是通过prototypevueApp.mount('#app')

  5、安装mockjs

> npm install mockjs -D

  6、在根目录新建mock文件夹,在mock文件夹下新建index.js文件,并在main.js中引入index.js,代码如下:

// mock/index.jsimport Mock from 'mockjs'Mock.mock('/url', 'get', (req, res) => {  return Mock.mock({    status: 200,    req,    res,    data: '请求成功'  })})
// main.jsimport { createApp } from 'vue'import App from './App.vue'import axios from 'axios'import '../mock/index' // 引入mock路由拦截const vueApp = createApp(App)vueApp.config.globalProperties.$axios = axiosvueApp.mount('#app')

  7、修改helloWorld.vue文件如下:

// helloWorld.vue<template>  <div>    <button @click="getMockData">获取mock数据</button>  </div></template><script>export default {  name: 'HelloWorld',  methods: {    getMockData() {      this.$axios.get('/url').then(res => {        console.log(res)      })    }  }}</script><style scoped></style>

这时候页面效果如下:

vue-cli如何实现异步请求返回mock模拟数据

  到了这一步可以说是成功实现mock数据返回了,细心的朋友可能已经发现,network里面并没有出现请求,我们只能通过console查看返回结果,当请求数量多时就不太好调试了,那有没有什么办法可以让请求出现在network中呢?

  前面已经说到运行项目时,就是启动了一个本地服务器,只要想办法把接口路由配置进去就可以了,接着往下看

  9、修改vue.config.js中的devServer的配置,如果没有该文件则新建

// vue.config.jsconst Mock = require('mockjs')module.exports = {  //...  devServer: {    port: 8082,    before: function(app, server) { // WEBpack4使用before,webpack使用setupMiddlewares      app.get('/url', function(req, res) {        res.JSON(Mock.mock({          status: 200,          data: '请求成功啦~'        }));      });    }  }};

   注释main.js中引入的mock配置

import { createApp } from 'vue'import App from './App.vue'import axios from 'axios'// import '../mock/index' // 引入mock路由拦截const vueApp = createApp(App)vueApp.config.globalProperties.$axios = axiosvueApp.mount('#app')

  重启服务,重新点击按钮,成功请求,并且在network也出现了该请求,如下图

vue-cli如何实现异步请求返回mock模拟数据

  这样似乎已经实现了我们的目的了,既使用了mock模拟数据,也方便了调试,但是,在我们修改了返回的数据内容时,请求接口,发现还是原来的数据,因为是修改配置文件,所以每次修改都需要重启服务,这也太麻烦了吧,我们想每次修改before里的内容时,服务器都能够自动热更新,就像修改其他文件一样,浏览器自动更新,继续往下走。

  10、安装chokidar插件,监听mock文件夹,实现接口路由热更新,想了解更多chokidar的内容请自行搜索

> npm install chokidar -D

  11、在mock文件夹下新建mock-server.js,内容如下,就不具体细说了,大家可以自行调试

// mock/mock-server.jsconst chokidar = require('chokidar')const path = require('path')const mockDir = path.join(process.cwd(), 'mock')// 删除对应的接口路由缓存function removeReGISterRoutes() {  Object.keys(require.cache).forEach(i => {    if (i.includes(mockDir)) {      console.log(i)      delete require.cache[require.resolve(i)]    }  })}// 注册接口路由,每增加一个路由,app._router.stack就增加一个堆栈function registerRoutes(app){  const mocks = require('./index') // 这里必须在函数内引用,否则无法实现热更新  let count = 0  for (const mock of mocks) {    app[mock.method](mock.url, mock.response);    count++  }  return {    start: app._router.stack.length - count,    count  }}module.exports = (app) => {  let { start, count } = registerRoutes(app)  chokidar.watch(mockDir, {}).on('all', (event, path) => {    if (event === 'change' || event === 'add') {      app._router.stack.splice(start, count) // 先删除旧的api路由,再重新注册新的路由      removeRegisterRoutes()      const stack = registerRoutes(app)      start = stack.start      count = stack.count    }  })}

  注意,修改mock-server.js文件内容不会触发自动更新,具体原因这里就不说了,可以自己想一想哦~

  12、修改mock中的index.js文件

// mock/index.jsconst Mock = require('mockjs')const routers = [  {    url: '/url',    method: 'get',    response: (req, res) => {      res.json(Mock.mock({        status: 200,        data: '请求成功~'      }))    }  },  {    url: '/url/path',    method: 'get',    response: (req, res) => {      res.json(Mock.mock({        status: 200,        data: '请求接口/url/path'      }))    }  }]module.exports = routers

  13、修改vue.config.js的beforte

// vue.config.js// const Mock = require('mockjs')module.exports = {  //...  devServer: {    port: 8082,    before: require('./mock/mock-server')  }};

  重新启动,点击按钮,请求成功,修改mock中的index里面的返回数据,回到页面点击按钮,发现返回数据已改变,到此,已实现接口请求返回mock数据。

以上是“vue-cli如何实现异步请求返回mock模拟数据”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: vue-cli如何实现异步请求返回mock模拟数据

本文链接: https://www.lsjlt.com/news/325065.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue-cli实现异步请求返回mock模拟数据
      在前后端分离开发的过程中,前端开发过程中,页面的数据显示一般都是写死的静态数据,也就是没有经过接口,直接写死在代码中的,在后端给出接口后,再替换为接口数据,为了减少对接成本,mo...
    99+
    2024-04-02
  • vue-cli如何实现异步请求返回mock模拟数据
    这篇文章主要为大家展示了“vue-cli如何实现异步请求返回mock模拟数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue-cli如何实现异步请求返回mock模拟数据”这篇文章吧。  在前...
    99+
    2023-06-29
  • vue本地模拟服务器怎么请求mock数据
    本篇内容介绍了“vue本地模拟服务器怎么请求mock数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!原因mockjs本地开发的时候用还好,...
    99+
    2023-06-29
  • Vue-cli如何使用json server在本地模拟请求数据
    这篇文章主要为大家展示了“Vue-cli如何使用json server在本地模拟请求数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue-cli如何使用js...
    99+
    2024-04-02
  • Vue中如何使用mock模拟数据
    目录Vue使用mock模拟数据Vue使用mock数据的几种方式方式一:借助mockjs插件实现本地mock数据方式二:在public文件夹放mock数据(无需使用mockjs插件)方...
    99+
    2024-04-02
  • 如何使用getJSON()异步请求服务器返回json格式数据
    小编给大家分享一下如何使用getJSON()异步请求服务器返回json格式数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!我们可以使用jquery的getJ...
    99+
    2024-04-02
  • Vuex如何通过actions模拟异步请求
    这篇文章主要介绍Vuex如何通过actions模拟异步请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、比如说我现在有这么个需求,当 count < 5 的时候,就停止 c...
    99+
    2024-04-02
  • vue本地模拟服务器请求mock数据的方法详解
    目录原因场景方法mock资源配置vue.config.js + settings.js.env.development + .env.productionmock-request.j...
    99+
    2024-04-02
  • VUE Axios与Mock数据:模拟网络请求进行离线开发
    ...
    99+
    2024-04-02
  • 异步请求PHP服务器,不返回数据怎么办
    本篇内容主要讲解“异步请求PHP服务器,不返回数据怎么办”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“异步请求PHP服务器,不返回数据怎么办”吧!       &n...
    99+
    2023-06-28
  • react如何请求数据异步
    这篇文章主要讲解了“react如何请求数据异步”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react如何请求数据异步”吧!react请求数据异步的方法:1、通过“npm i redux-t...
    99+
    2023-07-04
  • react异步请求数据怎么实现
    在React中实现异步请求数据有多种方式,以下是其中几种常用的方法:1. 使用`fetch` API:`fetch`是现代浏览器提供...
    99+
    2023-09-13
    react
  • vue如何模拟后台数据请求本地数据配置
    随着前端框架的不断发展,越来越多的公司选择使用前后端分离的开发模式。在这种情况下,前端需要模拟后台数据请求来测试自己所开发的页面,以确保在与后台联调时能够顺利地进行下去。本文将介绍在使用Vue框架下,如何模拟后台数据请求本地数据配置。一、V...
    99+
    2023-05-14
  • 决ajax异步请求返回的是字符串如何解决
    这期内容当中小编将会给大家带来有关决ajax异步请求返回的是字符串如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.返回结果差异js获取后打印res.code无结果。因为返回数据格式不正确。php...
    99+
    2023-06-08
  • 如何实现ajax发送异步请求
    这篇文章将为大家详细讲解有关如何实现ajax发送异步请求,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下第一步(得到XMLHttpRequest)ajax其实只...
    99+
    2024-04-02
  • springBoot之如何获取接口请求数据和返回数据实现日志
    目录一、获取接口请求的数据HttpServletRequestFilterRequestWrapperafterCompletion二、获取接口返回的数据HttpServletRes...
    99+
    2023-05-14
    springBoot接口 springBoot接口请求数据 springBoot返回数据日志
  • Ajax如何实现异步请求技术
    这篇文章将为大家详细讲解有关Ajax如何实现异步请求技术,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。AJAX的全称是Asynchronous JavaScript an...
    99+
    2024-04-02
  • ajax如何实现异步请求刷新
    这篇文章给大家分享的是有关ajax如何实现异步请求刷新的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在网站刷新的方法中,ajax刷新是一种用户体验良好的刷新方式,在结合ssh等流...
    99+
    2024-04-02
  • jQuery中如何实现ajax请求后台返回json数据并渲染HTML
    小编给大家分享一下jQuery中如何实现ajax请求后台返回json数据并渲染HTML,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下...
    99+
    2024-04-02
  • 原生JS如何发送异步数据请求
    这篇文章主要介绍原生JS如何发送异步数据请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在做项目的时候,有时候需要用到异步数据请求,但是如果这个时候没有框架的依赖,就需要用到原生J...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作