vue本地开发mock数据.md

目录

  • 一、为什么要mock数据?
  • 二、如何mock数据?
  • 三、webpack本地代理配置
  • 四、mockjs使用
  • 五、easymock使用

一、为什么要mock数据?

VUE项目开发过程中,前后端是完全分离,后端负责提供数据,前端负责数据展示,因此就会存在这种情况:前端需要用到数据接口的时候,后端还没开发出来,此时前端就要挂起吗?当然不是了,我们要解决的就是如何给前端模拟数据?从而实现前后端完全独立开发。

二、如何mock数据?

在团队协作过程中,在人员角色分工明确的情况下,我们可以先根据产品功能文档,定义好一份前后端交互的api文档,开发人员可根据api文档独立编码;后端比较简单,按api文档实现相应的接口,并为接口编写单元测试,mock前端请求参数即可;而前端可以引入第三者,mock接口返回结果。

如何搭建Mock API:

  • 本地json文件

    这是最原始的方法了,直接将接口返回的结果,写死在本地文本文件中,如user.json,这种方式也是可以,只是会污染到我们的代码,到了项目上线的,需要修改代码请求接口;

  • 本地mock api或远程mock api

    本地用mockjs,远程用easymock,这两种都可以,可以非常灵活的模拟真实api请求交互,如:http://mockapi/user模拟http://restapi/user,前后端开发完成后,可以通过修改api host一键切换至我们的api。

三、webpack本地代理配置

我们在本地开发的时候,调用远程api,存在ajax跨域请求的问题,此时可通过webpack proxy配置,实现本地请求转发至远程,解决跨域问题。

找到config/index.js修改proxyTable,如下:

    proxyTable: {
      ‘/refundApi‘: {
        target: ‘https://easy-mock.com/mock/5af0f80305d45458a763bc65‘, // 接口的域名
        // secure: false, // 如果是https接口,需要配置这个参数
        changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
        pathRewrite: {
          ‘^/refundApi‘: ‘‘
        }
      }
    },

假如vue的启动端口是8081,即http://localhost:8081,此时请求http://localhost:8081/refundApi/user会转发至https://easy-mock.com/mock/5af0f80305d45458a763bc65/user

四、mockjs使用

Mock.js is a simulation data generator to help the front-end to develop and prototype separate from the back-end progress and reduce some monotony particularly while writing automated tests.

The official site: http://mockjs.com

  • vue安装mockjs
npm install mockjs
  • vue中使用mockjs

    示例:http://mockjs.com/examples.html

数据模板格式:

‘name|rule‘: value
属性名|生成规则: 属性值

定义mock api:

// mock/user.js
import Mock from ‘mockjs‘;//es6语法引入mock模块
Mock.mock(‘/test/‘, {
    // 属性 list 的值是一个数组,其中含有5个元素
    ‘list|5‘: [{
        ‘url‘: ‘@url‘
    }]
});

调用mock api:

// use in test.vue
import axios from ‘axios‘
import data from ‘../mock/user.js‘

axios.get(‘/test/‘).then(function(res){
   var data = res.data;
   console.log(JSON.stringify(data));
}).catch(function(err){
  console.log(err);
});

请求成功,输出结果:

{
    "list": [
        {
            "url": "http://pqibpj.gt/tqreffku"
        },
        {
            "url": "tn3270://huqptk.tv/wejcc"
        },
        {
            "url": "mid://kncn.bt/hpjutggpn"
        }
    ]
}

五、easymock使用

mockjs确实可以满足我的需求,不过在无意间发现了easymock,就喜欢上这个工具了,easymock其实就是一个在线的mockjs,提供可视化管理界面,能快速配置api地址,生成模拟数据,而其实接触mockjs那会我就有想基于mockjs自己搭建一个专门的mock api服务,没想到早就有人这么干了。

并且easymock还基于GPL3.0开放了源码,企业或个人可下载源码进行私有化部署。

github地址:https://github.com/easy-mock/easy-mock

在线服务:https://easy-mock.com

原文地址:https://www.cnblogs.com/vipinchan/p/9265972.html

时间: 2024-10-29 15:08:09

vue本地开发mock数据.md的相关文章

在vue项目中mock数据

第一步:安装: 在命令行中执行: npm install mockjs; 第二步:定义index.js文件 我们新建一个mock文件夹,此文件夹中建一个index.js文件:在index.js中输入以下内容: import Mock from 'mockjs' //引入mockjs,npm已安装import { Random } from 'mockjs' // 引入random对象,随机生成数据的对象,(与占位符@一样)Mock.setup({ timeout:1000 //设置请求延时时间}

vue项目中mock数据get请求参数接收问题以及常规post参数写法

1.1前端vue组件内写法 this.$axios({ method:"get", url:"/news/index", data:{ product_type:'product' } }).then((res)=>{ //请求成功返回的数据 console.log(res); this.newsListShow = res.data.data.datalist; this.product_type=res.data.data.product_type; })

vue 本地开发时使用localhost与ip访问

修改config文件夹下面的index.js配置,将localhost改为0.0.0.0就可以了.用ip,127.0.0.1,localhost均行 host: '0.0.0.0', // can be overwritten by process.env.HOST 问题: 使用本地ip时访问发现登陆不上,使用localhost反而可以,后查明是cookit存入时存入是domain限制了,用内网ip如192.168.88.34:8080存不了cookei // 创建 获取 删除cookie ex

用vue框架mock数据

用vue 2.0 mock数据 方法一 webpack打包的项目中可以依赖express var express = require('express'): var app = express(): var appData = require("../data.json"); var seller = appData.seller; var apiRouter = express.Router(); apiRouter.get("/seller", function

Vue+Koa2移动电商实战 (五)mock数据使用和布局

前面我们已经获取到了数据,这节我们就好把它用到我们的项目中来.这节课我们主要是使用flex布局和for循环是我们的type_bar展示出来. 关于flex布局的话如果还不是很了解的小伙伴儿可以查阅下阮一峰大神的博客(http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html) 首页商品分类栏的布局 HTML: 我们采用v-for的方式将商品分类栏循环出来,并给了每个图片百分之九十的宽度,我这里因为第一张图片格式不对,多以单独添加了宽度的 <d

vue - blog开发学习5

基本功能和后台联调 1.首页的所有博客 因为是前后台都是本地开发,所以前端vue需要设置proxy:修改/config/index.js中的这个proxyTable proxyTable: { '/api': { target: 'http://localhost:8888', changeOrigin: true, pathRewrite: { '^/api': '' } }, 同时将mock.js中的模拟数据方法注释掉 2.后台添加cors package com.nxz.blog.conf

Vue-cli创建项目从单页面到多页面4 - 本地开发服务器设置代理

前后端分离开发时,有时候会遇到跨域的情况:只在开发的时候存在跨域,项目上线后,由于配置的域名相同,跨域就会不存在. 这个时候,有两种方案可以比较快的解决: 1.利用h5的特性,使用cors,在ngnix服务器上设置header:Access-Control-Allow-Origin的值为 *(或者目标域名)允许跨域. 2.在我们的本地开发服务器上设置代理. 这里主要介绍使用vue-cli创建项目后,怎样配置本地服务器的代理,成功通过本地服务器代理请求数据的解决方案. 解决方案 进入config/

MPVUE - 使用vue.js开发微信小程序

MPVUE - 使用vue.js开发微信小程序 什么是mpvue? mpvue 是美团点评前端团队开源的一款使用 Vue.js 开发微信小程序的前端框架.框架提供了完整的 Vue.js 开发体验,开发者编写 Vue.js 代码,mpvue 将其解析转换为小程序并确保其正确运行. 简单上手mpvue 官方提供了一套quickstart模板. vue init mpvue/mpvue-quickstart my-project 安装好依赖之后,执行npm run dev,将会将小程序文件打包进dis

VUE项目多环境配置.md

目录 一.了解webpack.DefinePlugin 二.项目中如何配置多环境 web项目开发,通常需要有开发环境.测试环境和生产环境,用于配置不同的环境变更,如调用本地接口.测试接口和生产接口,VUE项目是前后端完全分离的框架,像是web界的C/S构架,在做VUE前端开发时,就需要用开发环境甚至于mock环境,等项目上线时,则需要使用生产的环境变量进行打包部署. 一.了解webpack.DefinePlugin webpack是静态模块打包器,可以将vue项目中所有文件打包成一个或多个jsb