详解Vue CLI 3.0脚手架如何mock数据


Posted in Javascript onNovember 23, 2018

前后端分离的开发模式已经是目前前端的主流模式,至于为什么会前后端分离的开发我们就不做过多的阐述,既然是前后端分离的模式开发肯定是离不开前端的数据模拟阶段。

我们在开发的过程中,由于后台接口的没有完成或者没有稳定之前我们都是采用模拟数据的方式去进行开发项目,这样会使我们的前后端会同时的进行,提高我们的开发效率。

因为最近自己在自学 Vue 也在自己撸一个项目,肯定会遇到使用数据的情况,所以就想着如何在前端做一些 mock 数据的处理,因为自己的项目使用的是 vue/cli 3.0 与 vue/cli 2.0 的使用有一些的不同,所以在这里记录一下。

注意:本文主要说的是如何配置本地静态文件的 mock 数据的方式

首先我们来说一说vue/cli 3.0 与 2.0 的一些不同:

  • 3.0 移除了 static 文件目录,新增了 public 目录,这个目录下的静态资源不会经过 webpack 的处理,会被直接拷贝,所以我们能够直接访问到该目录下的资源。
  • 3.0 移除了 config、build 等配置目录,如果需要进行相关配置我们需要在根目录下创建 vue.config.js 进行配置即可。

2.0 的文件结构

详解Vue CLI 3.0脚手架如何mock数据

3.0 的文件结构

详解Vue CLI 3.0脚手架如何mock数据

可以看到 3.0 版本的脚手架在项目结构上精简了很多,看上去没有那么的繁琐。接下来我就进行 mock 数据的配置,再说 3.0 之前,我们先看看 2.0 的时候我们都是怎么使用静态数据文件进行 mock 的。

2.0 配置

首先,在这个版本是只有我们的 static 目录下的文件是可以被访问到的,所以我们就把静态文件放入该目录下。

// 静态数据存放的位置
static/mock/home.json

我们启动项目之后一般项目会启动在 8080 端口,如果不是修改下对应端口号即可,我们访问下面地址:http://localhost:8080/static/mock/index.json

我们可以看到我们的数据是可以请求到的,之后我们只需要在项目中 config/index.js 添加如下属性:

dev: {
  // Paths fiddler charles
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
  proxyTable: {
   '/api': {
    target: 'http://localhost:8080',
    pathRewrite: {
     '^/api': '/static/mock'
    }
   }
  }
}

之后我们在项目中使用即可,我们就能获取我们需要的数据。

axios
 .get('/api/index.json')
 .then(this.handler)

3.0 配置

因为 static 目录移除,我们把静态文件放入 public 文件下。

// 静态数据存放的位置
public/mock/home.json

和上面一样,启动项目后我们看看数据能不能正常被访问。http://localhost:8080/mock/home.json

之后,不同的地方在于,我们需要手动创建一个 vue.config.js 文件放在根目录下。

module.exports = {
 devServer: {
  proxy: {
   '/api': {
    target: 'http://localhost:8080',
    changeOrigin: true,
    pathRewrite: {
     '^/api': '/mock'
    }
   }
  }
 }
}

配置完成之后,我们也是和上述一样,在项目中直接访问数据即可。

axios
 .get('/api/home.json')
 .then(this.handler)

总结

以上我们就学会了如何在 vue/cli 3.0 的项目中进行 mock 数据,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Extjs中常用表单介绍与应用
Jun 07 Javascript
Javasipt:操作radio标签详解
Dec 30 Javascript
eclipse导入jquery包后报错的解决方法
Feb 17 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
Feb 26 Javascript
js隐式全局变量造成的bug示例代码
Apr 22 Javascript
jQuery中ready事件用法实例
Jan 19 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
Feb 03 Javascript
在Docker快速部署Node.js应用的详细步骤
Sep 02 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
Oct 08 Javascript
SpringMVC简单整合Angular2的示例
Jul 31 Javascript
js事件触发操作实例分析
Jun 21 Javascript
JavaScript实现简单随机点名器
Nov 21 Javascript
详解js静态检查工具eslint配置文件
Nov 23 #Javascript
详解小程序不同页面之间通讯的解决方案
Nov 23 #Javascript
创建echart多个联动的示例代码
Nov 23 #Javascript
详解Angular模板引用变量及其作用域
Nov 23 #Javascript
vue使用better-scroll实现下拉刷新、上拉加载
Nov 23 #Javascript
详解Vue2.0组件的继承与扩展
Nov 23 #Javascript
angular4自定义表单控件[(ngModel)]的实现
Nov 23 #Javascript
You might like
默默简单的写了一个模板引擎
2007/01/02 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
利用PHP生成静态html页面的原理
2016/09/30 PHP
Yii2实现自定义独立验证器的方法
2017/05/05 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
2011/05/25 Javascript
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
flask应用部署到服务器的方法
2019/07/12 Python
通过自学python能找到工作吗
2020/06/21 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
简述 Python 的类和对象
2020/08/21 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
小学生感恩老师演讲稿
2014/08/28 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
技术转让协议书
2016/03/19 职场文书