Home > Web Front-end > JS Tutorial > body text

Detailed explanation of using mockjs in vue-cli project

小云云
Release: 2018-01-04 09:48:57
Original
4985 people have browsed it

This article mainly introduces the use of mockjs (request data to delete data) in the vue-cli project. It has certain reference value. Interested friends can refer to it. I hope it can help everyone.

In our actual production, the back-end interface often comes out later, so many of our front-end developments have to wait until the interface is given to us, which makes our front-end very passive. , so is it possible to create fake data to simulate the back-end interface? The answer is yes. So today we will introduce a very powerful plug-in, Mock.js, which can very conveniently simulate back-end data, and can also easily implement operations such as adding, deleting, modifying, and checking. After the background data is completed, all you have to do is remove mockjs: Stop Intercepting real ajax, nothing more.

Build a vue project


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

Install mockjs


npm install mockjs --save-dev
Copy after login

Open the project


npm run dev
Copy after login

Create a mockjs folder and mockjs, and introduce this file in main.js

You can see it at this time To a project structure like this








## To write simulated data, we can refer to the mockjs documentation at this time.


// 使用 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))
Copy after login

Now we can do what we want to do


Simulate some simple data in 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(&#39;300x250&#39;, &#39;mock的图片&#39;), // Random.dataImage( size, text ) 生成一段随机的 Base64 图片编码
    author_name: Random.cname(), // Random.cname() 随机生成一个常见的中文姓名
    date: Random.date() + &#39; &#39; + Random.time() // Random.date()指示生成的日期字符串的格式,默认为yyyy-MM-dd;Random.time() 返回一个随机的时间字符串
   }
   articles.push(newArticleObject)
  }
  return {
   data: articles
  }
 }
Mock.mock(&#39;/news&#39;, /post|get/i, produceData);//当post或get请求到/news路由时Mock会拦截请求并返回上面的数据
Copy after login
Request in vue


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

Effect preview

Do another deletion process

Simulated data

###
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 &#39;get&#39;:
    break;
   case &#39;post&#39;:
    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(&#39;/list&#39;, /get|post/i, list);//get用于请求数据,post用于删除数据
Copy after login
###Use in vue############
methods: {
   setNewsApi: function() {
    this.$http.get("/list", "").then(res => {
     this.data = res.data.data;
    });
   },
   deleteList(data) { //删除数据
    let id = data.id;
    this.$http.post(&#39;/list&#39;, {
      params: {
       id: id
      }
     }).then(function(res) {
      console.log(res);
      this.data = res.data.data;
      alert(data.name + &#39;删除成功&#39;);
     }.bind(this))
     .catch(function(error) {
      console.log(error)
     });
   },
  }
Copy after login
###Effect preview###### #########Related recommendations: ############Use mockjs to simulate back-end data in vue, vuecli, and webpack## ##########Sharing of simple mock json script implemented in PHP, phpmockjson script_PHP tutorial############Use mock.js to make front-end development and back-end independent### ###

The above is the detailed content of Detailed explanation of using mockjs in vue-cli project. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template