pwindy  
在完成任务的同时,还需要不断“复盘”,不论你多么的忙,都需要留下时间思考,可以思考哪些地方做的好,哪些地方我们可以改进,应该如何改进,注重总结才是王道

现在基本的趋势就是前后分离,前后分离就意味着当后台接口还没完成之前,前端是没有接口可以拿来调用的

    ,那么mock虚拟数据就很好的解决了这一问题,前端可以直接模拟真实的数据AJAX请求!

运用 步骤:

1、在项目中安装mockjs、axios

npm install --save axios mockjs

2、在项目src下面建一个mock.js文件

3、在mock.js中写入随机数规则,以及引入mock

const Mock = require('mockjs') // 获取mock对象
const Random = Mock.Random // 获取random对象,随机生成各种数据,具体请翻阅文档
const domain = 'http://mockjs.com/api' // 定义默认域名,随便写
const code = 200 // 返回的状态码

// 随机生成文章数据
const postData = req => {
  
  console.log(req) // 请求体,用于获取参数

  let posts = [] // 用于存放文章数据的数组
  
  for (let i = 0; i < 10; i++) {
    let post = {
      title: Random.csentence(10, 25), // 随机生成长度为10-25的标题
    //   icon: Random.dataImage('250x250', '文章icon'), // 随机生成大小为250x250的图片链接
      author: Random.cname(), // 随机生成名字
      date: Random.date() + ' ' + Random.time() // 随机生成年月日 + 时间
    }

    posts.push(post)
  }
  
  // 返回状态码和文章数据posts
  return {
    code,
    posts
  }
}

// 定义请求链接,类型,还有返回数据
Mock.mock(`${domain}/posts`, 'get', postData);

4、在入口文件main.js中引入mock.js 和 axios

// mock模拟数据=========
import './mock.js'  //引入mock
import axios from 'axios'
Vue.prototype.$ajax = axios  //如果不这么写会报错
axios.defaults.baseURL = 'http://mockjs.com/api' // 设置默认请求的url

5、在运用的页面也要引入axios

import axios from 'axios'

 

坑就在这里!!!!费了我一个下午!!!一直报这个错误!!!

 

研究了半天终于有效

在最后调用的地方改一下

this.$axios.get('/api/data').then((res)=>{
  console.log(res);
})

  改成

axios.get("/posts").then(res => {
    console.log(res.request.responseText);
});

   OK!!完美

posted on 2020-03-24 17:56  pwindy  阅读(227)  评论(0编辑  收藏  举报