详解vue-cli 本地开发mock数据使用方法

作者:萝卜粥_Carrot 时间:2024-05-10 14:20:21 

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

来源:https://www.jianshu.com/p/ccd53488a61b

标签:vue,cli,mock数据
0
投稿

猜你喜欢

  • python制作websocket服务器实例分享

    2023-02-20 00:00:29
  • accept-charset与Header P3P

    2009-04-01 18:43:00
  • mysql存储过程 在动态SQL内获取返回值的方法详解

    2024-01-19 01:22:53
  • django 删除数据库表后重新同步的方法

    2024-01-12 23:11:56
  • Python编写合并字典并实现敏感目录的小脚本

    2023-05-28 18:36:29
  • 详解Python 关联规则分析

    2023-09-03 11:54:18
  • uniapp封装小程序雷达图组件的完整代码

    2024-04-17 09:55:26
  • SQL Server Parameter Sniffing及其改进方法

    2024-01-28 02:56:30
  • 在Python中处理时间之clock()方法的使用

    2021-09-22 06:07:26
  • element中table操作按钮展示与折叠的实现示例

    2024-05-02 16:35:35
  • 利用C#远程存取Access数据库

    2024-01-27 01:58:32
  • Python海龟绘图之绘制趣味简笔画

    2023-03-13 09:09:40
  • Python序列化基础知识(json/pickle)

    2021-04-24 01:09:34
  • phpmyadmin报错:#2003 无法登录 MySQL服务器的解决方法

    2023-11-19 20:38:45
  • Python实现屏幕代码雨效果的示例代码

    2021-08-29 12:48:09
  • 用Python实现一个简单的多线程TCP服务器的教程

    2023-08-16 15:37:21
  • Python 实现选择排序的算法步骤

    2023-04-01 18:28:53
  • PHP删除数组中指定值的元素常用方法实例分析【4种方法】

    2024-06-05 09:51:58
  • 关于python pycharm中输出的内容不全的解决办法

    2023-09-23 16:45:26
  • Python转换itertools.chain对象为数组的方法

    2022-10-27 08:38:16
  • asp之家 网络编程 m.aspxhome.com