详解在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 相关文章推荐
jQuery实现动画效果的实例代码
May 07 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 Javascript
bootstrap模态框垂直居中效果
Dec 03 Javascript
JS实现的驼峰式和连字符式转换功能分析
Dec 21 Javascript
深入理解vuex2.0 之 modules
Nov 20 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
Nov 28 Javascript
Angular2.0实现modal对话框的方法示例
Feb 18 Javascript
vue添加axios,并且指定baseurl的方法
Sep 19 Javascript
简单的React SSR服务器渲染实现
Dec 11 Javascript
详解从react转职到vue开发的项目准备
Jan 14 Javascript
JavaScript进制转换实现方法解析
Jan 18 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
Feb 11 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中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
Element Input组件分析小结
2018/10/11 Javascript
通过实例讲解JS如何防抖动
2019/06/15 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
vue实现前端分页完整代码
2020/06/17 Javascript
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
使用PDB简单调试Python程序简明指南
2015/04/25 Python
Python手机号码归属地查询代码
2016/05/04 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
python根据url地址下载小文件的实例
2018/12/18 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
《莫泊桑拜师》教学反思
2014/04/23 职场文书
借条格式范本
2015/05/25 职场文书
网络妈妈观后感
2015/06/08 职场文书
欠款证明
2015/06/24 职场文书
创业计划书详解
2019/07/19 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
Python机器学习之决策树和随机森林
2021/07/15 Javascript
Python实现归一化算法详情
2022/03/18 Python