在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 相关文章推荐
Prototype使用指南之ajax
Jan 10 Javascript
$()JS小技巧
Jul 21 Javascript
javascript时区函数介绍
Sep 14 Javascript
JS实现简单的天数计算器完整实例
Apr 28 Javascript
详解VUE中v-bind的基本用法
Jul 13 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
Jun 24 Javascript
解决vue接口数据赋值给data没有反应的问题
Aug 27 Javascript
Vue 实现前进刷新后退不刷新的效果
Jun 14 Javascript
ES6中Symbol、Set和Map用法详解
Aug 20 Javascript
layui监听select变化,以及设置radio选中的方法
Sep 24 Javascript
javascript实现简易数码时钟
Mar 30 Javascript
在VUE style中使用data中的变量的方法
Jun 19 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计数器的实现代码
2013/06/08 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
Javascript调试工具(下载)
2007/01/09 Javascript
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
浅谈Vue.use到底是什么鬼
2020/01/21 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
django基础学习之send_mail功能
2019/08/07 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
Python pip 常用命令汇总
2020/10/19 Python
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
如何写一封打动人心的求职信
2014/02/17 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers