vue+axios+promise+mockjs开发

vue+axios+promise+mockjs开发

axios

axios 是基于promise的http库,可运行在浏览器端和node.js中

axios的特点
1、从浏览器中创建XMLHttpRequests
2、从node.js创建http请求
3、支持Promise API
4、拦截请求和响应(就是有interceptor)
5、转换请求数据和响应数据
6、取消请求
7、自动转换json数据
8、客户端支持防御XSRF

mockjs

实际开发中,前后端分离,前端需要后端的接口去完成页面的渲染,但是并不能等到后端成员写完接口再开始进行测试。大部分情况下,前后端需要同时进行开发。因此便需要mockjs制造随机数据来进行后端接口模拟

开发过程

1、搭建vue-cli脚手架

搭建vue-ci

2、安装axios

npm install axios --save(或cnpm install axios --save)

在这里插入图片描述

3、创建公共模块API

新建js文件,创建公共模块api,并且加入拦截器(这里加入了登录拦截),注意不要忘记加export default axios

import axios from 'axios'

// http request 拦截器
axios.interceptors.request.use(
  config => {
    if (sessionStorage.token) {
      config.headers['x-auth-token'] = sessionStorage.token // 将token设置成请求头
    }
    return config
  },
  err => {
    return Promise.reject(err)
  }
)

// http response 拦截器
axios.interceptors.response.use(
  response => {
    if (response.data.code === 500104) {
      sessionStorage.token = ''
    } else if (response.headers['x-auth-token']) {
      sessionStorage.setItem('token', response.headers['x-auth-token'])
      sessionStorage.token = response.headers['x-auth-token']
    }
    return response
  },
  error => {
    return Promise.reject(error)
  }
)

export default axios

4、封装请求方法

可以新建一个api文件夹,在里面写请求方法

get请求

export function get(url, params){    
    return new Promise((resolve, reject) =>{        
        axios.get(url, {            
            params: params        
        }).then(res => {
            resolve(res.data);
        }).catch(err =>{
            reject(err.data)        
        })    
    });
}

post请求

export function post(url, params) {
    return new Promise((resolve, reject) => {
         axios.post(url, qs.stringify(params))
        .then(res => {
            resolve(res.data);
        })
        .catch(err =>{
            reject(err.data)
        })
    });
}

在这里插入图片描述

5、安装mockjs

npm install mockjs --save

在这里插入图片描述
6、在main.js中引用

require('./mock')

在这里插入图片描述

7、写mock模拟请求数据

新建mock文件夹,在这个文件夹下新建index.js文件,然后导入Mock,之后写mock数据,里面的data可以用通过导入json数据进行替换。(要注意mock模拟数据的格式,格式不同引用数据时的写法会有点不同)

import Mock from 'mockjs'

const info = {
  'id': '@guid',
  'name': '@cname'
}

Mock.mock('/api/test', 'get', {code: 0, data: info})

export default Mock

在这里插入图片描述

8、在app.vue中调用方法
在这里插入图片描述
或者用async await的方式,使代码更加简洁:
在这里插入图片描述

9、运行项目

npm run dev

在浏览器中查看控制台:
在这里插入图片描述
参考链接
【1】《vue+axios+promise实际开发用法》
【2】在vue-cli项目下简单使用mockjs模拟数据

github地址:
https://github.com/LisaNcu/axiosDemo.git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值