在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 相关文章推荐
JavaScript入门教程(12) js对象化编程
Jan 31 Javascript
javascript同页面多次调用弹出层具体实例代码
Aug 16 Javascript
浅谈被jQuery抛弃的函数及替代函数
May 03 Javascript
学习JavaScript设计模式之状态模式
Jan 08 Javascript
Validform+layer实现漂亮的表单验证特效
Jan 17 Javascript
Javascript HTML5 Canvas实现的一个画板
Apr 12 Javascript
jQuery实现的简单百分比进度条效果示例
Aug 01 Javascript
js实现4个方向滚动的球
Mar 06 Javascript
canvas实现爱心和彩虹雨效果
Mar 09 Javascript
Vue2.0 事件的广播与接收(观察者模式)
Mar 14 Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 Javascript
Vue中遍历数组的新方法实例详解
Jul 21 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日期时间函数的高级应用技巧
2009/05/16 PHP
php 邮件发送问题解决
2014/03/22 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
zend framework重定向方法小结
2016/05/28 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
新鲜出炉的js tips提示效果
2011/04/03 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
JavaScript中Math对象的方法介绍
2017/01/05 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
Python基于pillow判断图片完整性的方法
2016/09/18 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
利用python实现汉诺塔游戏
2021/03/01 Python
CSS3的first-child选择器实战攻略
2016/04/28 HTML / CSS
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
APM Monaco中国官网:来自摩纳哥珠宝品牌
2017/12/27 全球购物
仓库管理专业个人自我评价范文
2013/11/11 职场文书
医学专业大学生求职的自我评价
2013/11/27 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
公司承诺书范文
2014/05/19 职场文书
安徽导游词
2015/02/12 职场文书
社区重阳节活动总结
2015/03/24 职场文书
退休欢送会致辞
2015/07/31 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript