详解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 相关文章推荐
同一页面多个商品倒计时JS 基于面向对象的javascript
Feb 16 Javascript
jQuery插件zepto.js简单实现tab切换
Jun 16 Javascript
BootStrap glyphicons 字体图标实现方法
May 01 Javascript
jQuery实现的简单拖动层示例
Feb 22 Javascript
详解基于node的前端项目编译时内存溢出问题
Aug 01 Javascript
React router动态加载组件之适配器模式的应用详解
Sep 12 Javascript
你应该了解的JavaScript Array.map()五种用途小结
Nov 14 Javascript
Vue实现拖放排序功能的实例代码
Jul 08 Javascript
JS实现打字游戏
Dec 17 Javascript
Node.js Domain 模块实例详解
Mar 18 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
Apr 10 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
Jul 07 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
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
js返回上一页并刷新代码整理
2012/12/21 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
python django model联合主键的例子
2019/08/06 Python
python 进程的几种创建方式详解
2019/08/29 Python
python线程join方法原理解析
2020/02/11 Python
Python如何实现远程方法调用
2020/08/07 Python
Python运算符+与+=的方法实例
2021/02/18 Python
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
JS原生实现轮播图的几种方法
2021/03/23 Javascript
财务会计人员岗位职责
2013/11/30 职场文书
技术合作协议书范本
2014/04/18 职场文书
关于JavaScript轮播图的实现
2021/11/20 Javascript
python数据处理之Pandas类型转换
2022/04/28 Python