详解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 相关文章推荐
showModelessDialog()使用详解
Sep 07 Javascript
提交表单时执行func方法实现代码
Mar 17 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
Nov 19 Javascript
jquery无刷新验证邮箱地址实现实例
Feb 19 Javascript
node.js中的fs.realpath方法使用说明
Dec 16 Javascript
JavaScript实现三阶幻方算法谜题解答
Dec 29 Javascript
JS遍历数组及打印数组实例分析
Jan 21 Javascript
AngularJS基础 ng-show 指令简单示例
Aug 03 Javascript
Vuejs第十篇之vuejs父子组件通信
Sep 06 Javascript
JavaScript 继承详解(六)
Oct 11 Javascript
VUE中v-model和v-for指令详解
Jun 23 Javascript
在React中如何优雅的处理事件响应详解
Jul 24 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
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
PHP获取文件的MD5值并判断是否被修改的例子
2014/06/19 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
js中有关IE版本检测
2012/01/04 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
python数字类型math库原理解析
2020/03/02 Python
如何用Python 加密文件
2020/09/10 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
某科技软件测试面试题
2013/05/19 面试题
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
抗震救灾标语
2014/06/26 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
销售业务员岗位职责
2015/02/13 职场文书
公司人力资源管理制度
2015/08/05 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
Python基于百度API识别并提取图片中文字
2021/06/27 Python
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL