详解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 相关文章推荐
jquery trim() 功能源代码
Feb 14 Javascript
js几秒以后倒计时跳转示例
Dec 26 Javascript
如何将网页表格内容导入excel
Feb 18 Javascript
jQuery中scrollLeft()方法用法实例
Jan 16 Javascript
在JavaScript中call()与apply()区别
Jan 22 Javascript
Javascript基础知识盲点总结之函数
May 15 Javascript
JavaScript中函数声明与函数表达式的区别详解
Aug 18 Javascript
详解打造 Vue.js 可复用组件
Mar 24 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
Apr 25 Javascript
layui实现table加载的示例代码
Aug 14 Javascript
在小程序中推送模板消息的实现方法
Jul 22 Javascript
微信小程序sessionid不一致问题解决
Aug 30 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
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
jQuery入门知识简介
2010/03/04 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
[02:10]探秘浦东源深体育馆 DOTA2 Supermajor不见不散
2018/05/17 DOTA
Python开发常用的一些开源Package分享
2015/02/14 Python
Python中运行并行任务技巧
2015/02/26 Python
Python中列表元素转为数字的方法分析
2016/06/14 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
python 杀死自身进程的实现方法
2019/07/01 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
学术会议邀请函范文
2014/01/22 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
文书工作总结(范文)
2019/07/11 职场文书
Redis实现一个账号只能登录一个设备
2022/04/19 Redis