在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 相关文章推荐
JSON 学习之JSON in JavaScript详细使用说明
Feb 23 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
jQuery中:has选择器用法实例
Dec 30 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
Apr 30 Javascript
JavaScript面向对象程序设计教程
Mar 29 Javascript
js匿名函数作为函数参数详解
Jun 01 Javascript
vue升级之路之vue-router的使用教程
Aug 14 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
Oct 08 Javascript
JS根据json数组多个字段排序及json数组常用操作
Jun 06 Javascript
vue-cli3 取消eslint校验代码的解决办法
Jan 16 Javascript
Vue文本模糊匹配功能如何实现
Jul 30 Javascript
vue3.0实现插件封装
Dec 14 Vue.js
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
长波有什么东西
2021/03/01 无线电
php结合curl实现多线程抓取
2015/07/09 PHP
PHP模块化安装教程
2016/06/01 PHP
浅谈PHP的反射机制
2016/12/15 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
Jquery选中或取消radio示例
2013/09/29 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
node.js利用redis数据库缓存数据的方法
2017/03/01 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
详解nuxt sass全局变量(公共scss解决方案)
2018/06/27 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
Python 实现Windows开机运行某软件的方法
2018/10/14 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
python实现字符串加密成纯数字
2019/03/19 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
Python读写Excel表格的方法
2021/03/02 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
应聘编辑职位自荐信范文
2014/01/05 职场文书
大学生新学期计划书
2014/04/28 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
体育口号大全
2014/06/18 职场文书
学前班教学反思
2016/02/24 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
创业计划书之家教托管
2019/09/25 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
Python中的程序流程控制语句
2022/02/24 Python