详解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 相关文章推荐
javascript add event remove event
Apr 07 Javascript
Javascript 判断客户端浏览器类型代码
Mar 01 Javascript
jqGrid读取选择的多行的某个属性代码
May 18 Javascript
js propertychange和oninput事件
Sep 28 Javascript
基于AGS JS开发自定义贴图图层
Mar 31 Javascript
Vue.js框架路由使用方法实例详解
Aug 25 Javascript
AngularJS实现表单验证功能详解
Oct 12 Javascript
JS获取当前地理位置的方法
Oct 25 Javascript
vue js秒转天数小时分钟秒的实例代码
Aug 08 Javascript
JS实现的新闻列表自动滚动效果示例
Jan 30 Javascript
vue使用showdown并实现代码区域高亮的示例代码
Oct 17 Javascript
Vue filter 过滤器、以及在table中的使用介绍
Sep 07 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地址引用(php地址引用的效率问题)
2012/03/23 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
PHP实现获取文件mime类型多种方法解析
2020/05/28 PHP
js左侧多级菜单动态的解决方案
2010/02/01 Javascript
extjs中grid中嵌入动态combobox的应用
2011/01/01 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
VueJS全面解析
2016/11/10 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
Python生成密码库功能示例
2017/05/23 Python
Linux系统(CentOS)下python2.7.10安装
2018/09/26 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
Python读写文件模式和文件对象方法实例详解
2019/09/17 Python
德国网上药房:Apotal
2017/04/04 全球购物
介绍一下Linux文件的记录形式
2012/04/18 面试题
怎样写好自我评价呢?
2014/02/16 职场文书
劳动竞赛活动总结
2014/05/05 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书