详解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 相关文章推荐
为你的网站增加亮点的9款jQuery插件推荐
May 03 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
Oct 21 Javascript
javascript自然分类法算法实现代码
Oct 11 Javascript
js获取IP地址的方法小结
Jul 01 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
Jun 12 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
Oct 09 Javascript
IE8兼容Jquery.validate.js的问题
Dec 01 Javascript
js 原型对象和原型链理解
Feb 09 Javascript
详解10分钟学会vue滚动行为
Sep 21 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
Jan 02 jQuery
使用Vue构建可重用的分页组件
Mar 26 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
Nov 29 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
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
提高php运行速度的一些小技巧分享
2012/07/03 PHP
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
PHP中类的继承和用法实例分析
2016/05/24 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
详解AngularJS2 Http服务
2017/06/26 Javascript
微信小程序 自定义消息提示框
2017/08/06 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
修改node.js默认的npm安装目录实例
2018/05/15 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
Python contextlib模块使用示例
2015/02/18 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
详解Python是如何实现issubclass的
2019/07/24 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
PHP如何设置和取得Cookie值
2015/06/30 面试题
护理个人求职信范文
2014/01/08 职场文书
小学班主任寄语大全
2014/04/04 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
学生偷窃检讨书
2014/09/25 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
Python实现滑雪小游戏
2021/09/25 Python
html粘性页脚的具体使用
2022/01/18 HTML / CSS
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server