详解在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 相关文章推荐
ie 处理 gif动画 的onload 事件的一个 bug
Apr 12 Javascript
jscript之List Excel Color Values
Jun 13 Javascript
百度地图api应用标注地理位置信息(js版)
Feb 01 Javascript
js简易namespace管理器 实例代码
Jun 21 Javascript
javascript学习笔记(一)基础知识
Sep 30 Javascript
jQuery中选择器的基础使用教程
May 23 Javascript
vue.js入门教程之计算属性
Sep 01 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
Nov 27 Javascript
vue服务端渲染添加缓存的方法
Sep 18 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
Dec 02 Javascript
vue 开发企业微信整合案例分析
Dec 02 Javascript
微信小程序用户盒子、宫格列表的实现
Jul 01 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
Drupal简体中文语言包安装教程
2014/09/27 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
jQuery 注意事项 与原因分析
2009/04/24 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
JavaScript实现在页面间传值的方法
2015/04/07 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
Swiper实现轮播图效果
2017/07/03 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
Python 初始化多维数组代码
2008/09/06 Python
python网络编程学习笔记(一)
2014/06/09 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
django queryset 去重 .distinct()说明
2020/05/19 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
化工专业个人的求职信范文
2013/11/28 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
《社戏》教学反思
2016/02/22 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
导游词之峨眉乐山/兵马俑/北京故宫御花园
2019/09/03 职场文书
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js
PHP使用QR Code生成二维码实例
2021/07/07 PHP
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android