详解在vue-cli项目中使用mockjs(请求数据删除数据)


Posted in Javascript onOctober 23, 2017

在我们的生产实际中,后端的接口往往是较晚才会出来,于是我们的前端的许多开发都要等到接口给我们才能进行,这样对于我们前端来说显得十分的被动,于是有没有可以制造假数据来模拟后端接口呢,答案是肯定的。于是今天我们来介绍一款非常强大的插件Mock.js ,可以非常方便的模拟后端的数据,也可以轻松的实现增删改查这些操作,在后台数据完成之后,你所做的只是去掉mockjs:停止拦截真实的ajax,仅此而已。

搭建一个vue项目

# 全局安装 vue-cli
$ npm install --global vue-cli
# 创建一个基于 webpack 模板的新项目
vue init webpack vue-mock
$ cd my-project
# 安装依赖
$ npm install

安装mockjs

npm install mockjs --save-dev

开启项目

npm run dev

创建一个mockjs文件夹以及mockjs,并且在main.js引入这个文件

此时可以看到像这样的一个项目结构

详解在vue-cli项目中使用mockjs(请求数据删除数据)

mockjs的使用

在项目中的mock.js文件中,写入模拟的数据,此时我们可以参照一下mockjs的文档。

// 使用 Mock
var Mock = require('mockjs')
var data = Mock.mock({
  // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
  'list|1-10': [{
    // 属性 id 是一个自增数,起始值为 1,每次增 1
    'id|+1': 1
  }]
})
// 输出结果
console.log(JSON.stringify(data, null, 4))

接下来可以做我们想要做的事了

在mock.js中模拟简单的一些数据

const Mock = require('mockjs');
// 获取 mock.Random 对象
 const Random = Mock.Random;
 // mock一组数据
 const produceData = function (opt) {
  console.log('opt', opt);
  let articles = [];
  for (let i = 0; i < 30; i++) {
   let newArticleObject = {
    title: Random.csentence(5, 30), // Random.csentence( min, max )
    thumbnail_pic_s: Random.dataImage('300x250', 'mock的图片'), // Random.dataImage( size, text ) 生成一段随机的 Base64 图片编码
    author_name: Random.cname(), // Random.cname() 随机生成一个常见的中文姓名
    date: Random.date() + ' ' + Random.time() // Random.date()指示生成的日期字符串的格式,默认为yyyy-MM-dd;Random.time() 返回一个随机的时间字符串
   }
   articles.push(newArticleObject)
  }
  return {
   data: articles
  }
 }
Mock.mock('/news', /post|get/i, produceData);//当post或get请求到/news路由时Mock会拦截请求并返回上面的数据

在vue中请求

methods: {
   setNewsApi: function() {
    this.$http.post("/news", "type=top&key=123456").then(res => {
     console.log(res.data);
 
     this.newsListShow = res.data.data;
    });
   }
  }

效果预览

详解在vue-cli项目中使用mockjs(请求数据删除数据)

再做一个删除的处理

模拟数据

let arr = []
 for (let i = 0; i < 30; i++) {
  let newArticleObject = {
   name: Random.cname(), // Random.cname() 随机生成一个常见的中文姓名
   content: Random.csentence(5, 30), // Random.csentence( min, max )
   id: i
  }
  arr.push(newArticleObject);
 }
 let list = function (options) {
  let rtype = options.type.toLowerCase(); //获取请求类型
  switch (rtype) {
   case 'get':
    break;
   case 'post':
    let id = parseInt(JSON.parse(options.body).params.id) //获取删除的id
    arr = arr.filter(function(val){
     return val.id!=id;//把这个id对应的对象从数组里删除
    });
    break;
   default:
  }
  return {
   data: arr
  } //返回这个数组,也就是返回处理后的假数据
 }
 Mock.mock('/list', /get|post/i, list);//get用于请求数据,post用于删除数据

vue中使用

methods: {
   setNewsApi: function() {
    this.$http.get("/list", "").then(res => {
     this.data = res.data.data;
    });
   },
   deleteList(data) { //删除数据
    let id = data.id;
    this.$http.post('/list', {
      params: {
       id: id
      }
     }).then(function(res) {
      console.log(res);
      this.data = res.data.data;
      alert(data.name + '删除成功');
     }.bind(this))
     .catch(function(error) {
      console.log(error)
     });
   },
  }

效果预览

 详解在vue-cli项目中使用mockjs(请求数据删除数据)

github代码地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 中的 call 和 apply使用介绍
Feb 22 Javascript
js工具方法弹出蒙版
May 08 Javascript
移动节点的jquery代码
Jan 13 Javascript
jQuery的css()方法用法实例
Dec 24 Javascript
javascript设计简单的秒表计时器
Sep 05 Javascript
js改变透明度实现轮播图的算法
Aug 24 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
Dec 26 Javascript
谈谈vue中mixin的一点理解
Dec 12 Javascript
一文读懂ES7中的javascript修饰器
May 06 Javascript
Vue实现商品分类菜单数量提示功能
Jul 26 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
Aug 10 Javascript
angularjs实现天气预报功能
Jun 16 #Javascript
angular.js实现购物车功能
Oct 23 #Javascript
使用store来优化React组件的方法
Oct 23 #Javascript
node文件批量重命名的方法示例
Oct 23 #Javascript
详解vue 实例方法和数据
Oct 23 #Javascript
深入浅析javascript继承体系
Oct 23 #Javascript
Vue.js组件通信的几种姿势
Oct 23 #Javascript
You might like
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
php笔记之:AOP的应用
2013/04/24 PHP
preg_match_all使用心得分享
2014/01/31 PHP
PHP连接操作access数据库实例
2015/03/30 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
php readfile下载大文件失败的解决方法
2017/05/22 PHP
jquery中邮箱地址 URL网站地址正则验证实例代码
2013/09/15 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
javascript HTML5文件上传FileReader API
2020/03/27 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
微信小程序 PHP后端form表单提交实例详解
2017/01/12 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
python内存管理分析
2015/04/08 Python
Python中的多行注释文档编写风格汇总
2016/06/16 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
对Python中的@classmethod用法详解
2018/04/21 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
python getopt模块使用实例解析
2019/12/18 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
商务助理求职信范文
2014/04/20 职场文书
导师就业推荐信范文
2014/05/22 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
委托书的写法
2014/08/30 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
篮球拉拉队口号
2015/12/25 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
pytorch 实现多个Dataloader同时训练
2021/05/29 Python