详解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 相关文章推荐
Prototype1.6 JS 官方下载地址
Nov 30 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
Nov 27 Javascript
带左右箭头图片轮播的JS代码
Dec 18 Javascript
js跳转页面方法实现汇总
Feb 11 Javascript
重写document.write实现无阻塞加载js广告(补充)
Dec 12 Javascript
JavaScript类型系统之基本数据类型与包装类型
Jan 06 Javascript
解决前端跨域问题方案汇总
Nov 20 Javascript
JSON对象转化为字符串详解
Aug 11 Javascript
JS实现对json对象排序并删除id相同项功能示例
Apr 18 Javascript
自定义vue组件发布到npm的方法
May 09 Javascript
利用Promise自定义一个GET请求的函数示例代码
Mar 20 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
Jul 30 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和MySQL保存和输出图片
2006/10/09 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
JS location几个方法小姐
2008/07/09 Javascript
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
TypeScript入门-接口
2017/03/30 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
ant design实现圈选功能
2019/12/17 Javascript
vue2.0实现列表数据增加和删除
2020/06/17 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
python逐行读写txt文件的实例讲解
2018/04/03 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
python plotly绘制直方图实例详解
2019/07/22 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
pytorch查看通道数 维数 尺寸大小方式
2020/05/26 Python
Python如何给你的程序做性能测试
2020/07/29 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
汉语言文学职业规划
2014/02/14 职场文书
经理助理岗位职责
2014/03/05 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
建设工程授权委托书
2014/09/22 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书