详解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 相关文章推荐
prototype 中文参数乱码解决方案
Nov 09 Javascript
jQuery 创建Dom元素
May 07 Javascript
jquery 笔记 事件
Nov 02 Javascript
javascript获取URL参数与参数值的示例代码
Dec 20 Javascript
Jquery 实现checkbox全选方法
Jan 28 Javascript
javascript随机显示背景图片的方法
Jun 18 Javascript
jQuery对JSON数据进行排序输出的方法
Jun 24 Javascript
JS获取数组最大值、最小值及长度的方法
Nov 24 Javascript
Treegrid的动态加载实例代码
Apr 29 Javascript
vue中动态添加class类名的方法
Sep 05 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
Oct 19 Javascript
Ajax 的初步实现(使用vscode+node.js+express框架)
Jun 18 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(1) php开发环境配置
2010/02/15 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
Javascript 构造函数 实例分析
2008/11/26 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
2018/06/14 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
对python中的logger模块全面讲解
2018/04/28 Python
python监控文件并且发送告警邮件
2018/06/21 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
python issubclass 和 isinstance函数
2019/07/25 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
python爬虫 2019中国好声音评论爬取过程解析
2019/08/26 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
如何利用find命令查找文件
2016/11/18 面试题
土木工程专业大学毕业生求职信
2013/10/13 职场文书
客户表扬信范文
2014/01/10 职场文书
测试工程师职业规划书
2014/02/06 职场文书
学生会离职感言
2014/02/11 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
婚内分居协议书范文
2014/11/26 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
红楼梦读书笔记
2015/06/25 职场文书
小学运动会宣传稿
2015/07/23 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书