详解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 控制下拉菜单刷新的方法
Mar 03 Javascript
cookie.js 加载顺序问题怎么才有效
Jul 31 Javascript
JS截取字符串常用方法整理及使用示例
Oct 18 Javascript
JS简单实现元素复制示例附图
Nov 19 Javascript
js中日期的加减法
May 06 Javascript
用svg制作富有动态的tooltip
Jul 17 Javascript
BootStrap表单验证实例代码
Jan 13 Javascript
微信小程序实战之自定义抽屉菜单(7)
Apr 18 Javascript
js实现分页功能
May 24 Javascript
JavaScript Tab菜单实现过程解析
May 13 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
Jul 21 Javascript
微信小程序实现可长按移动控件
Nov 01 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
博士208HAF收音机实习报告
2021/03/02 无线电
用PHP和ACCESS写聊天室(六)
2006/10/09 PHP
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
2018/09/16 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
set在python里的含义和用法
2019/06/24 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
python装饰器代替set get方法实例
2019/12/19 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
python实现交并比IOU教程
2020/04/16 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
纯CSS3制作的鼠标悬停时边框旋转
2017/01/03 HTML / CSS
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
请假条格式范文
2014/04/10 职场文书
工作推荐信范文
2014/05/10 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
家庭困难证明
2014/10/12 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫