详解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 相关文章推荐
JS版网站风格切换实例代码
Oct 06 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
Jul 12 Javascript
JQuery+EasyUI轻松实现步骤条效果
Feb 22 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
Jun 09 Javascript
手把手搭建安装基于windows的Vue.js运行环境
Jun 12 Javascript
在vue项目中使用sass的配置方法
Mar 20 Javascript
Angular网络请求的封装方法
May 22 Javascript
微信小程序日期选择器实例代码
Jul 18 Javascript
vue的全局变量和全局拦截请求器的示例代码
Sep 13 Javascript
react-native滑动吸顶效果的实现过程
Jun 03 Javascript
AJAX XMLHttpRequest对象创建使用详解
Aug 20 Javascript
Vue如何实现组件间通信
May 15 Vue.js
详解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
yii框架搜索分页modle写法
2016/12/19 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
php表单处理操作
2017/11/16 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
JS 各种网页尺寸判断实例方法
2013/04/18 Javascript
Javascript基础教程之argument 详解
2015/01/18 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
javascript 中select框触发事件过程的分析
2017/08/01 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
python 字符串split的用法分享
2013/03/23 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
深入浅析Python中的yield关键字
2018/01/24 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
python中怎么表示空值
2020/06/19 Python
Python 在局部变量域中执行代码
2020/08/07 Python
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
化工实习心得体会
2014/09/09 职场文书
行政处罚事先告知书
2015/07/01 职场文书
MySQL池化框架学习接池自定义
2022/07/23 MySQL