详解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 DOM 学习第九章 选取范围的介绍
Feb 19 Javascript
文本框输入时 实现自动提示(像百度、google一样)
Apr 05 Javascript
window.open()详解及浏览器兼容性问题示例探讨
May 29 Javascript
JavaScript闭包详解
Feb 02 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
Oct 13 Javascript
JS DOMReady事件的六种实现方法总结
Nov 23 Javascript
javascript实现简单的ajax封装示例
Dec 28 Javascript
纯原生js实现table表格的增删
Jan 05 Javascript
用原生js做单页应用
Jan 17 Javascript
详解vue与后端数据交互(ajax):vue-resource
Mar 16 Javascript
JavaScript模块详解
Dec 18 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
Dec 20 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获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
php生成excel文件的简单方法
2014/02/08 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
详解用函数式编程对JavaScript进行断舍离
2017/09/18 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
在Python的循环体中使用else语句的方法
2015/03/30 Python
Python实现的彩票机选器实例
2015/06/17 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
深入浅出学习python装饰器
2017/09/29 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
python实现控制COM口的示例
2019/07/03 Python
深入了解python中元类的相关知识
2019/08/29 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
初中生三年学习生活的自我评价
2013/11/03 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
旷课检讨书500字
2014/10/14 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
暑期家教宣传单
2015/07/14 职场文书
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫