详解vue-cli 本地开发mock数据使用方法


Posted in Javascript onMay 29, 2018

vue-cli 中可以通过配置 proxyTable 解决开发环境的跨域问题,具体可以参考这篇文章:Vue-cli proxyTable 解决开发环境的跨域问题

如果后端接口尚未开发完成,前端开发一般使用mock数据。

mock方法有多种多样,这里给出两种:

方法一: 使用express搭建静态服务

mock数据写在json文件中,proxyTable 里将接口代理到具体mock数据json文件上。

具体方法:

创建 mock 文件夹

build/dev-server.js 中添加如下代码

详解vue-cli 本地开发mock数据使用方法

npm run dev 启动后,可以通过 http://localhost:8080/mock/db.json 访问数据,proxyTable对应设置代理即可(代理设置方法与解决跨域方法相似)

详解vue-cli 本地开发mock数据使用方法

方法二 使用 JSON Server 搭建 Mock 服务器

JSON Server 是一个创建伪RESTful服务器的工具,具体使用方法可以看官方文档,这里直接讲在vue-cli 中的用法。

配置流程

全局安装 $ npm install -g json-server

项目目录下创建 mock 文件夹

mock 文件夹下添加 db.json 文件,内容如下

{
 "posts": [
 { "id": 1, "title": "json-server", "author": "typicode" }
 ],
 "comments": [
 { "id": 1, "body": "some comment", "postId": 1 }
 ],
 "profile": { "name": "typicode" }
}

package.json 添加命令

"mock": "json-server --watch mock/db.json",
 "mockdev": "npm run mock & npm run dev"

详解vue-cli 本地开发mock数据使用方法

启动 mock 服务器

$ npm run mock 命令 运行 mock server

访问 http://localhost:3000/

发现 db.json 下第一级 json 对象被解析成为可访问路径

详解vue-cli 本地开发mock数据使用方法

GET请求具体路径 如:http://localhost:3000/posts 可获取数据

详解vue-cli 本地开发mock数据使用方法

faker.js 批量生成伪数据

如果需要大量的伪数据,手动构造比较费时费力,可以使用faker.js 批量生成。faker.js 的具体使用参见官方文档,这里做一个示例。

$ cnpm install faker -G 全局安装 faker

mock 目录下创建 faker-data.js,内容如下

module.exports = function () {
 var faker = require("faker");
 faker.locale = "zh_CN";
 var _ = require("lodash");
 return {
  people: _.times(100, function (n) {
   return {
    id: n,
    name: faker.name.findName(),
    avatar: faker.internet.avatar()
   }
  }),
  address: _.times(100, function (n) {
   return {
    id: faker.random.uuid(),
    city: faker.address.city(),
    county: faker.address.county()
   }
  })
 }
}

$ json-server mock/faker-data.js 在 json server 中使用 faker

请求 http://localhost:3000/address 可以获取到随机生成的100组伪数据

详解vue-cli 本地开发mock数据使用方法

添加中间件

json server 使用 RESTful 架构,GET请求可以获取数据,POST 请求则是添加数据。
在开发过程中,有时候想直接模拟获取POST请求返回结果,可以添加 express 中间件 将POST请求转为GET请求。

mock 目录下创建 post-to-get.js,内容如下

module.exports = function (req, res, next) {
 req.method = "GET";
 next();
}

启动命令添加运行中间件 --m mock/post-to-get.js

"mock": "json-server --watch mock/db.json --m mock/post-to-get.js",

重新启动服务,POST请求就被转换为GET请求了

详解vue-cli 本地开发mock数据使用方法

其他需求也可以通过添加不同的中间件实现。

代理设置

config/index.js proxyTable 将请求映射到 http://localhost:3000

详解vue-cli 本地开发mock数据使用方法

代码中添加请求以测试效果

详解vue-cli 本地开发mock数据使用方法

$ npm run mockdev 启动带mock 数据的本地服务

结果如下:

详解vue-cli 本地开发mock数据使用方法

整体代码:https://github.com/carrotz/vue-cli-mock

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
QQ邮箱的一个文本编辑器代码
Mar 14 Javascript
js arguments.callee的应用代码
May 07 Javascript
input输入框的自动匹配(原生代码)
Mar 19 Javascript
js清空form表单中的内容示例
May 20 Javascript
网页从弹窗页面单选框传值至父页面代码分享
Sep 29 Javascript
Angularjs中的页面访问权限怎么设置
Nov 11 Javascript
JS中的多态实例详解
Oct 15 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
Oct 17 Javascript
Vue2实时监听表单变化的示例讲解
Aug 30 Javascript
微信小程序HTTP接口请求封装的实现
Feb 21 Javascript
JS函数参数的传递与同名参数实例分析
Mar 16 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
Apr 29 Javascript
详解vue-cli项目中怎么使用mock数据
May 29 #Javascript
js统计页面上每个标签的数量实例代码
May 29 #Javascript
浅谈React的最大亮点之虚拟DOM
May 29 #Javascript
深入理解Vue Computed计算属性原理
May 29 #Javascript
javascript、php关键字搜索函数的使用方法
May 29 #Javascript
Vue路由切换时的左滑和右滑效果示例
May 29 #Javascript
Vue 组件传值几种常用方法【总结】
May 28 #Javascript
You might like
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
windows下安装Python和pip终极图文教程
2017/03/05 Python
python实现各进制转换的总结大全
2017/06/18 Python
用python生成1000个txt文件的方法
2018/10/25 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
Django框架模板用法入门教程
2019/11/04 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
Omio葡萄牙:全欧洲低价大巴、火车和航班搜索和比价
2019/02/09 全球购物
《梅花魂》教学反思
2014/04/30 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
2015年计划生育责任书
2015/05/08 职场文书
小学运动会前导词
2015/07/20 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers
python简单验证码识别的实现过程
2021/06/20 Python
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js