在vue-cli搭建的项目中增加后台mock接口的方法


Posted in Javascript onApril 26, 2018

用vue-cli搭建一个前端开发环境确实是极其方便,在写前端代码肯定也是少不了需要调用后台提供的业务接口进行前后端交互,特别在敏捷开发中,前后端都要提前确定业务接口并进行打桩,在开发过程中基本是没有现成的后台可以调用,基本上都是自己写mock进行模拟。

在vue-cli搭建的项目中,框架上用的是express的web框架,要做一个mock是很方便的。

假设前端页面上需要获取所有的新闻列表,那么就需要mock一个能够返回所有新闻列表数据的接口。

接下来就在项目中实现mock功能。

脚手架生成项目

执行命令用webpack模板生成一个名为vuestrap的项目(名字任意)

vue init webpack vue-mock-demo

在出现的各提示选项中,没什么要求,为了方便,把不用的ESLint,unit tests,e2e都关掉(这些选项都随意)。

? Project name vuestrap
? Project description A Vue.js project
? Author 省略
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? No
? Setup unit tests with Karma + Mocha? No
? Setup e2e tests with Nightwatch? No

选项选完,项目也就生成了。

执行命令,安装脚手架创建的组件

npm install

创建mock

和build、config等文件夹同级创建一个mock文件夹。

为了要mock一个获取新闻列表的数据接口,我们在mock文件夹下创建一个名为“router-news.js”的文件。

其中的内容为:

var express = require('express');
var router = express.Router();

//对所有新闻的get进行mock
router.get('/all', function(req, res, next) {
 //响应mock数据
 res.json([{
  title: 'news-title-1' ,
  content: 'news-content-1'
 },
 {
  title: 'news-title-2' ,
  content: 'news-content-2'
 }]);
});

module.exports = router;

这里的完整url应该是“/mock/news/all”,在这里只写了“/all”子路径。

在build/dev-server.js文件的头部require区域,require上面写的router。

var mockRouterNews = require('../mock/router-news')

最后,调用app.use将讲url和router关联。

app.use('/mock/news', mockRouterNews)

在这里,通过将url的拆分,可以明确的把url进行处理的模块化,一种业务可以交给对应的router进行响应处理,在使用app.use关联所有的router的地方也能看得很清楚。

注意:

使用app.use关联url和router的代码一定要放在对“connect-history-api-fallback”组件的app.use前,否则关联的url会被拦截掉,不会被mock的router正确响应。

在vue-cli搭建的项目中增加后台mock接口的方法

执行

在命令行中执行命令运行项目。

npm run dev

运行后,在浏览器的地址栏中补上mock的url并访问,就能看到mock的数据了,很方便。

在vue-cli搭建的项目中增加后台mock接口的方法

代码 https://github.com/bobenut/demo-webfront/tree/master/d0007/vue-mock-demo

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery Ajax之load()方法
Oct 12 Javascript
利用js获取服务器时间的两个简单方法
Jan 08 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
Dec 24 Javascript
jQuery基本过滤选择器使用介绍
Apr 18 Javascript
AngularJS入门教程之AngularJS模型
Apr 18 Javascript
AngularJs Understanding the Controller Component
Sep 02 Javascript
AngularJs  unit-testing(单元测试)详解
Sep 02 Javascript
Bootstrap入门教程一Hello Bootstrap初识
Mar 02 Javascript
基于Vue生产环境部署详解
Sep 15 Javascript
vue 表单之通过v-model绑定单选按钮radio
May 13 Javascript
Vue Autocomplete 自动完成功能简单示例
May 25 Javascript
JavaScript 几种循环方式以及模块化的总结
Sep 03 Javascript
vue 做移动端微信公众号采坑经验记录
Apr 26 #Javascript
jQuery length 和 size()区别总结
Apr 26 #jQuery
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
Apr 26 #Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
Apr 26 #Javascript
vue如何判断dom的class
Apr 26 #Javascript
vue 中filter的多种用法
Apr 26 #Javascript
vue自定义filters过滤器
Apr 26 #Javascript
You might like
PHP 遍历XP文件夹下所有文件
2008/11/27 PHP
JS 网站性能优化笔记
2011/05/24 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
纯js实现动态时间显示
2020/09/07 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
Python的gevent框架的入门教程
2015/04/29 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
HTML5安全介绍之内容安全策略(CSP)简介
2012/07/10 HTML / CSS
便携式太阳能系统的创新者:GOAL ZERO
2018/02/04 全球购物
测量实习生自我鉴定
2013/09/19 职场文书
高中生学习生活的自我评价
2013/11/27 职场文书
教师应聘个人求职信
2013/12/10 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
护士先进个人总结
2015/02/13 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
优秀大学生申请书
2019/06/24 职场文书
Python道路车道线检测的实现
2021/06/27 Python