在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 相关文章推荐
浏览器无法运行JAVA脚本的解决方法
Jan 09 Javascript
ext读取两种结构的xml的代码
Nov 05 Javascript
一个判断email合法性的函数[非正则]
Dec 09 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
Mar 14 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
Jun 24 Javascript
11种ASP连接数据库的方法
Sep 18 Javascript
简单实现JS对dom操作封装
Dec 02 Javascript
轻松掌握JavaScript中的Math object数学对象
May 26 Javascript
Bootstrap零基础入门教程(三)
Jul 18 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
Aug 24 Javascript
JavaScript读写二进制数据的方法详解
Sep 09 Javascript
vue安装和使用scss及sass与scss的区别详解
Oct 15 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语法速查表
2007/01/02 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
Maps Javascript
2007/01/22 Javascript
js中关于一个分号的崩溃示例
2013/11/11 Javascript
JQuery中Text方法用法实例分析
2015/05/18 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
js print打印网页指定区域内容的简单实例
2016/11/01 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
vue异步加载高德地图的实现
2018/06/19 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
Python中为feedparser设置超时时间避免堵塞
2014/09/28 Python
机器学习10大经典算法详解
2017/12/07 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
Pyqt助手安装PyQt5帮助文档过程图解
2020/11/20 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
EJB timer的种类
2014/10/28 面试题
自考生毕业自我鉴定
2013/10/10 职场文书
思想汇报格式
2014/01/05 职场文书
小学生班会演讲稿
2014/01/09 职场文书
六一节目主持词
2014/04/01 职场文书
法人委托书范本格式
2014/09/15 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
Go语言 详解net的tcp服务
2022/04/14 Golang