广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue中如何使用mock模拟数据
  • 239
分享到

Vue中如何使用mock模拟数据

2024-04-02 19:04:59 239人浏览 薄情痞子
摘要

目录Vue使用mock模拟数据Vue使用mock数据的几种方式方式一:借助mockjs插件实现本地mock数据方式二:在public文件夹放mock数据(无需使用mockjs插件)方

Vue使用mock模拟数据

开发阶段,为了提高效率,需要提前Mock减少代码冗余,灵活插拔减少沟通,减少接口联调时间

1.编辑器安装JSON5扩展,(采用json5格式来让json格式可以存在注释)

2.新建mock文件夹 /userInfo.json5 文件 mock数据

3.在mock文件夹下,新建 index.js   引入刚刚mock的数据

const fs = require('fs');
const path = require('path');
const Mock = require('mockjs');//mockjs 导入依赖模块
const JSON5 = require('json5');
//读取json文件
function getJsonFile(filePath) {
    //读取指定json文件
    let json = fs.readFileSync(path.resolve(__dirname,filePath), 'utf-8');
    //解析并返回
    return JSON5.parse(json);
}
 
//返回一个函数
module.exports = function(app){
    //监听Http请求
    app.get('/user/userinfo', function (rep, res) {
        //每次响应请求时读取mock data的json文件
        //getJsonFile方法定义了如何读取json文件并解析成数据对象
        let json = getJsonFile('./userInfo.json5'); // mock数据
        //将json传入 Mock.mock 方法中,生成的数据返回给浏览器
        res.json(Mock.mock(json));
    });
    app.post('/...mock的url',(req,res)=>{
    let json = getJsonFile('./...mock的json5数据');
})
}

4.vue.config.js中添加配置

module.exports = {
    devServer: {
        before: require('./mock/index.js')//引入mock/index.js
    }
}

5..vue文件下 发送ajax请求测试数据

import axiOS from 'axios'
export default {   
	  mounted() {
	    axios.get('/user/userinfo')
	    .then(res => {
	      console.log(res)
	    })
	    .catch(err => {
	      console.error(err); 
	    })
	  }
	} 

5.扩充:移除MOCK

.env.development 文件中

MOCK=false

完善mock\index.js

module.exports = function(app){
    if(process.env.MOCK == 'true'){
        //监听http请求
        app.get('/user/userinfo', function (rep, res) {
            //每次响应请求时读取mock data的json文件
            //getJsonFile方法定义了如何读取json文件并解析成数据对象
            let json = getJsonFile('./userInfo.json5');
            //将json传入 Mock.mock 方法中,生成的数据返回给浏览器
            res.json(Mock.mock(json));
        });
    }
} 

Vue使用mock数据的几种方式

以下讲解基于vuecli3.0创建的项目

首先我们来说一说vue/cli 3.0 与 2.0 的一些不同:

  • 3.0 移除了 static 文件目录,新增了 public 目录,这个目录下的静态资源不会经过 webpack 的处理,会被直接拷贝,所以我们能够直接访问到该目录下的资源,静态数据(如json数据、图片等)需要存放在这里。
  • 3.0 移除了 config、build 等配置目录,如果需要进行相关配置我们需要在根目录下创建 vue.config.js 进行配置即可。

方式一:借助mockjs插件实现本地mock数据

1.安装插件:npm i mockjs -D;

2.在src目录下创建一个mock文件夹,在mock文件夹下创建一个index.js和一个json文件夹(用于存放项目需要的模拟数据),如下图所示:

3.mock目录下的index.js示例如下:

const Mock = require('mockjs');
 
//格式: Mock.mock( url, post/get , 返回的数据);
Mock.mock('/index/foodlist', 'get', require('./json/foodlist.json'));
 
Mock.mock('/index/foodlist2', 'post', require('./json/foodlist2.json'));

4.json文件夹下的json数据示例如下:

{
    "code": 200,
    "list": [
        {
            "imgSrc": "https://timgsa.baidu.com/timg?C2880.jpg%3Fmode%3Ddownload",
            "name": "老弄堂1",
            "term": "起送¥15 免配送费"
        },
        {
            "imgSrc": "https://timgsa.baidu.com/timg?2C2880.jpg%3Fmode%3Ddownload",
            "name": "老弄堂2",
            "term": "起送¥15 免配送费"
        }
    ]
}

5.在main.js入口文件中引入mock数据,不需要时,则注释掉。

import Vue from 'vue';
import App from './App';
import router from './router';
 
require('./mock'); //引入mock数据,关闭则注释该行
 
Vue.config.productionTip = false;
 
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
});

6.最后,在vue模板中使用即可

axios.get('/user/userInfo')
.then(function(res){
  console.log(res);
})
.catch(function(err){
  console.log(err);
});

方式二:在public文件夹放mock数据(无需使用mockjs插件)

1.在public文件夹下创建一个mock文件夹,在mock文件夹里创建项目需要的json文件,目录结构如下:

2.在vue.config.js里进行路径配置,如下:

3.最后,在vue模板中使用即可

// 模拟请求本地mock数据(不基于插件)
    this.$http.get('/api/foods.json').then(function(res){
      let list = res.data.list;
      console.log(list);
      that.businessList = res.data.list;
    })

注:但是本方式貌似只能使用get请求方式,不支持post等其它方式,具体还需再研究下。

方式三:前端本地启动一个nodejs服务

vue项目向nodejs服务请求mock数据

1.创建一个node项目(为了方便,本例直接在vue项目根目录创建,当然也可以是其它任何地方)

2.serve.js示例如下:

const http = require('http');
// url模块用于处理与解析 前端传给后台的URL,适用于get请求(不适用于post请求),详情参见文档
const urlLib = require('url');
 
http.createServer(function(req, res){
    let urlObj = urlLib.parse(req.url, true);  // 注意:这里的第二个参数一定要设置为:true, query才能解析为对象形式,可以更加方便地获取key:value
    let url = urlObj.pathname;
    let get = urlObj.query;
    console.log(url);
    // 模拟的mock数据
    let data = {
        "code": 200,
        "list": [
            {
                "imgSrc": "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1126716551,3134048915&fm=26&gp=0.jpg",
                "name": "老弄堂1",
                "term": "起送¥15 免配送费"
            },
            {
                "imgSrc": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1582134004436&di=eee2d024a136e950daa694f56ea78a2d&imgtype=0&src=http%3A%2F%2Fbpic.588ku.com%2Felement_origin_min_pic%2F16%2F12%2F05%2F56db465e153a5d808b54501846e88dca.jpg",
                "name": "老弄堂2",
                "term": "起送¥15 免配送费"
            }
        ]
    }
 
    // console.log(get.user);
    if(url === "/food") {  // 美食列表接口
        res.write(JSON.stringify(data));
    }
    res.end();
}).listen(9000); 

启动node服务:node serve

3.配置vue.config.js的proxy,解决跨域

注意:这里配置的端口号不要和node的端口一样,否则会报端口号被占用

3.最后,在vue模板中使用即可

// 模拟请求本地node服务
    this.$http.get('/api/food').then(function(res){
      let list = res.data.list;
      console.log(list);
      that.businessList = res.data.list;
    })

总结:以上介绍了三种使用mock数据的方式,方便前端开发在本地开发环境下开发项目,使前后端分离,加快了开发效率,个人建议使用方式一(使用方便、灵活)。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Vue中如何使用mock模拟数据

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

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

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

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

下载Word文档
猜你喜欢
  • Vue中如何使用mock模拟数据
    目录Vue使用mock模拟数据Vue使用mock数据的几种方式方式一:借助mockjs插件实现本地mock数据方式二:在public文件夹放mock数据(无需使用mockjs插件)方...
    99+
    2022-11-13
  • vite+vue3中如何使用mock模拟数据问题
    这篇文章主要介绍“vite+vue3中如何使用mock模拟数据问题”,在日常操作中,相信很多人在vite+vue3中如何使用mock模拟数据问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vite+vue3...
    99+
    2023-07-06
  • vue中mock数据,模拟后台接口实例
    目录一、mock文件二、第三方接口eolinker在前端开发过程中,有后台配合是很必要的。但是如果自己测试开发,或者后台很忙,没时间,那么我们需要自己提供或修改接口。 下面提供两种方...
    99+
    2022-11-13
  • vue中mock数据模拟后台接口的方法
    这篇文章主要讲解了“vue中mock数据模拟后台接口的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中mock数据模拟后台接口的方法”吧!在前端开发过程中,有后台配合是很必要的。但...
    99+
    2023-06-29
  • vite+vue3中怎么使用mock模拟数据问题
    1.安装mockjs和vite-plugin-mocknpm i mockjs vite-plugin-mock --save-dev2.在vite.config.ts文件中配置vite-plugin-mock使用方式import { de...
    99+
    2023-05-15
    Vue3 vite mock
  • vue-cli如何实现异步请求返回mock模拟数据
    这篇文章主要为大家展示了“vue-cli如何实现异步请求返回mock模拟数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue-cli如何实现异步请求返回mock模拟数据”这篇文章吧。  在前...
    99+
    2023-06-29
  • vue-cli实现异步请求返回mock模拟数据
      在前后端分离开发的过程中,前端开发过程中,页面的数据显示一般都是写死的静态数据,也就是没有经过接口,直接写死在代码中的,在后端给出接口后,再替换为接口数据,为了减少对接成本,mo...
    99+
    2022-11-13
  • vue本地模拟服务器怎么请求mock数据
    本篇内容介绍了“vue本地模拟服务器怎么请求mock数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!原因mockjs本地开发的时候用还好,...
    99+
    2023-06-29
  • 深入详解Vue3中的Mock数据模拟
    目录引言一、Mock数据模拟的概述1.1 为什么需要Mock数据模拟?1.2 Mock数据模拟的优点和缺点二、安装和配置Mock.js库2.1 使用NPM安装Mock.js库2.2 ...
    99+
    2023-05-19
    Vue3 Mock数据模拟 Vue3 Mock
  • vue本地模拟服务器请求mock数据的方法详解
    目录原因场景方法mock资源配置vue.config.js + settings.js.env.development + .env.productionmock-request.j...
    99+
    2022-11-13
  • vue项目中如何使用mock
    本篇文章为大家展示了vue项目中如何使用mock,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Mock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试。提供了以下...
    99+
    2023-06-25
  • vue项目中怎么使用mock数据接口
    本篇文章为大家展示了vue项目中怎么使用mock数据接口,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.使用devServer.before进行数据mock//通...
    99+
    2022-10-19
  • vue如何使用模拟的json数据查看效果
    目录使用模拟的json数据查看效果具体方法如下vue模拟数据,数据交互mock数据$nextTick()数据交互使用模拟的json数据查看效果 在数据交互这一块,很多时候是要和后台进...
    99+
    2022-11-13
  • python使用Faker库进行生成模拟mock数据(基本使用+五个小案例)
    使用faker进行生成模拟(mock))数据 文章目录 使用faker进行生成模拟(mock))数据一、Faker库安装二、Faker库基本介绍三、案例1:Faker库生成核酸数据四、案例2:...
    99+
    2023-09-11
    python 开发语言 数据分析
  • vue-element-admin如何从mock数据过渡到使用后台接口
    目录1. 移除 mock2. 替换 mock 为后台接口请求3. 补全请求,状态参数总结1. 移除 mock 修改 vue.config.js 文件 1. 首先将 before: ...
    99+
    2023-05-17
    vue-element-admin vue mock数据 mock使用后台接口
  • vue项目中如何使用mock你知道吗
    目录第一步:第二步,在request.js中进行相关配置,request.js代码如下:第三步,在mock.js中进行相关配置,mock.js代码如下:第四步,在main.js中需引...
    99+
    2022-11-12
  • Vue框架中怎么调用模拟数据
    本篇内容主要讲解“Vue框架中怎么调用模拟数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue框架中怎么调用模拟数据”吧!1、框架结构mock是模拟数据文件夹,文件夹中有index.js,里...
    99+
    2023-06-29
  • Python中Mock如何使用
    Python中Mock如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 1. 前言微服务架构下,由于各类服务开发进度的不一致,导致联调工作经常会存在不确定性...
    99+
    2023-06-15
  • Vue框架中如何调用模拟数据你知道吗
    1、框架结构 mock是模拟数据文件夹,文件夹中有index.js,里面包含所模拟的接口数据:如下所示 const Mock = require("mockjs"); const ...
    99+
    2022-11-13
  • Vue-cli如何使用json server在本地模拟请求数据
    这篇文章主要为大家展示了“Vue-cli如何使用json server在本地模拟请求数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue-cli如何使用js...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作