详解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 操作下拉列表框实现代码
Feb 22 Javascript
无阻塞加载脚本分析[全]
Jan 20 Javascript
jQuery移动和复制dom节点实用DOM操作案例
Dec 17 Javascript
采用call方式实现js继承
May 20 Javascript
javascript学习笔记(七)Ajax和Http状态码
Oct 08 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
Dec 20 Javascript
使用JQuery实现的分页插件分享
Nov 05 Javascript
基于JS实现PHP的sprintf函数实例
Nov 14 Javascript
JavaScript实现显示函数调用堆栈的方法
Apr 21 Javascript
前端开发之CSS原理详解
Mar 11 Javascript
vue实现app页面切换动画效果实例
May 23 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
Oct 12 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 __autoload()方法真的影响性能吗?
2012/03/30 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
smarty高级特性之对象的使用方法
2015/12/25 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
巧用canvas
2017/01/21 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
javascript实现计算器功能
2020/03/30 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
在Django中创建动态视图的教程
2015/07/15 Python
python编写Logistic逻辑回归
2020/12/30 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
Python实现Kmeans聚类算法
2020/06/10 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
基于python实现百度翻译功能
2019/05/09 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
财产保全担保书范文
2014/04/01 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
财务管理专业求职信
2014/06/11 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
西柏坡导游词
2015/02/05 职场文书
党员个人总结范文
2015/02/14 职场文书
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers