在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中运用闭包和自执行函数解决大量的全局变量问题
Dec 30 Javascript
Javascript实现滑块滑动改变值的实现代码
Apr 12 Javascript
window.opener用法和用途实例介绍
Aug 19 Javascript
JQuery导航菜单选择特效
Apr 11 Javascript
js实现select二级联动下拉菜单
Apr 17 Javascript
JavaScript中创建对象的模式汇总
Apr 19 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
Jun 17 Javascript
使用vue构建移动应用实战代码
Aug 02 Javascript
详解如何构建一个Angular6的第三方npm包
Sep 07 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
Dec 29 Javascript
前端插件之Bootstrap Dual Listbox使用教程
Jul 23 Javascript
详解ES6 中的Object.assign()的用法实例代码
Jan 11 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
10个超级有用的PHP代码片段果断收藏
2015/09/23 PHP
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
ionic实现可滑动的tab选项卡切换效果
2020/04/15 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
vue form check 表单验证的实现代码
2018/12/09 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
python常见数制转换实例分析
2015/05/09 Python
Python 获得命令行参数的方法(推荐)
2018/01/24 Python
实时获取Python的print输出流方法
2019/01/07 Python
python实现多张图片拼接成大图
2019/01/15 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
关于是否需要写商业计划书
2014/02/07 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
2014年师德承诺书
2014/05/23 职场文书
森林防火标语
2014/06/23 职场文书
怎样写离婚协议书
2014/09/10 职场文书
投资申请报告
2015/05/19 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang
详解NodeJS模块化
2021/06/15 NodeJs
Python 数据可视化之Seaborn详解
2021/11/02 Python