PuffBook项目总结小记

[PuffBook项目总结]mock.js模拟数据,axios做

2019-04-11  本文已影响0人  Yixi_Li
  1. mock.js源码:https://github.com/nuysoft/Mock
  2. 替换原生的XMLHttpRequest,使用简便,不需要改变现有的请求代码
  3. 本项目采用axios做网络请求数据,请求完毕后,代码在线上和线下都是一样的,不需要去替换,在线下本地调试的时候,axios请求完,mockjs会把原生的XMLHttpRequest做一个替换,然后返回mock.js的接口
  4. 提供丰富的数据类型
  5. 无法支持blob类型,无法模拟下载(我们的电子书下载的时候会使用Blob类型)

使用mock.js

npm i mockjs --D
npm i axios --save
import Mock from 'mockjs'
import home from './bookHome' // 首页的所有数据
import shelf from './bookShelf' // 书架的所有数据
import list from './bookList' // 图书的所有列表
import flatList from './bookFlatList' // 方便做查询用的

// 第一个参数,正则表达式匹配所请求的URL
Mock.mock(/\/book\/home/, 'get', home) // 前端请求/book/home的时候,就会请求home里的数据
Mock.mock(/\/book\/shelf/, 'get', shelf)
Mock.mock(/\/book\/list/, 'get', list)
Mock.mock(/\/book\/flat-list/, 'get', flatList)
import axios from 'axios'
export function home() {
  return axios({
    method: 'get',
    url: `${process.env.VUE_APP_BASE_URL}/book/home`
  })
}

这样做就可以请求mock里Home中的数据

mounted () {
      // 发送请求 异步方式拿到结果
      home().then(response => {
        if (response && response.status === 200) {
          const data = response.data
          const randomIndex = Math.floor(Math.random() * data.random.length)
          this.random = data.random[randomIndex]
          this.banner = data.banner
          this.guessYouLike = data.guessYouLike
          this.recommend = data.recommend
          this.featured = data.featured
          this.categoryList = data.categoryList
          this.categories = data.categories
        }
      })
    }
<flap-card :data="random"></flap-card>

大致就是这样一套完整的流程

上一篇 下一篇

猜你喜欢

热点阅读