详解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 相关文章推荐
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
Mar 22 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
Jan 06 Javascript
wap浏览自动跳转到wap页面的js代码
May 17 Javascript
javascript制作坦克大战全纪录(1)
Nov 27 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
Dec 19 Javascript
JS实现让访问者自助选择网页文字颜色的方法
Feb 24 Javascript
JavaScript使用function定义对象并调用的方法
Mar 23 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
Sep 08 Javascript
vue.js指令和组件详细介绍及实例
Apr 06 Javascript
浅谈angular2 组件的生命周期钩子
Aug 12 Javascript
详细分析Node.js 模块系统
Jun 28 Javascript
antd design table更改某行数据的样式操作
Oct 31 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计算2点经纬度之间的距离代码
2013/08/12 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
PHP 实现链式操作
2021/03/09 PHP
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
深入理解Python3 内置函数大全
2017/11/23 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
python中的for循环
2018/09/28 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
python获取Linux发行版名称
2019/08/30 Python
python监控nginx端口和进程状态
2019/09/06 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
使用Python构造hive insert语句说明
2020/06/06 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
优秀员工年终发言演讲稿
2014/01/01 职场文书
淘宝活动策划方案
2014/02/06 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
委托书如何写
2014/08/30 职场文书
局机关干部群众路线个人对照检查材料思想汇报
2014/10/05 职场文书
三严三实学习心得体会
2014/10/13 职场文书
商务考察邀请函模板
2015/02/02 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
2015公司年度工作总结
2015/05/14 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers