详解vue中axios的封装
2018-07-18 08:59
1046 查看
第一步还是先下载axios
cnpm install axios -S
第二步建立一个htttp.js
import axios from 'axios'; import { Message } from 'element-ui'; axios.defaults.timeout = 5000; axios.defaults.baseURL =''; //http request 拦截器 axios.interceptors.request.use( config => { // const token = getCookie('名称');注意使用的时候需要引入cookie方法,推荐js-cookie config.data = JSON.stringify(config.data); config.headers = { 'Content-Type':'application/x-www-form-urlencoded' } // if(token){ // config.params = {'token':token} // } return config; }, error => { return Promise.reject(err); } ); //http response 拦截器 axios.interceptors.response.use( response => { if(response.data.errCode ==2){ router.push({ path:"/login", querry:{redirect:router.currentRoute.fullPath}//从哪个页面跳转 }) } return response; }, error => { return Promise.reject(error) } ) /** * 封装get方法 * @param url * @param data * @returns {Promise} */ export function fetch(url,params={}){ return new Promise((resolve,reject) => { axios.get(url,{ params:params }) .then(response => { resolve(response.data); }) .catch(err => { reject(err) }) }) } /** * 封装post请求 * @param url * @param data * @returns {Promise} */ export function post(url,data = {}){ return new Promise((resolve,reject) => { axios.post(url,data) .then(response => { resolve(response.data); },err => { reject(err) }) }) } /** * 封装patch请求 * @param url * @param data * @returns {Promise} */ export function patch(url,data = {}){ return new Promise((resolve,reject) => { axios.patch(url,data) .then(response => { resolve(response.data); },err => { reject(err) }) }) } /** * 封装put请求 * @param url * @param data * @returns {Promise} */ export function put(url,data = {}){ return new Promise((resolve,reject) => { axios.put(url,data) .then(response => { resolve(response.data); },err => { reject(err) }) }) }
第三步
在main.js中引入
import axios from 'axios' import {post,fetch,patch,put} from './utils/http' //定义全局变量 Vue.prototype.$post=post; Vue.prototype.$fetch=fetch; Vue.prototype.$patch=patch; Vue.prototype.$put=put;
最后在组件里直接使用
mounted(){ this.$fetch('/api/v2/movie/top250') .then((response) => { console.log(response) }) }, 其余的方法一样
您可能感兴趣的文章:
相关文章推荐
- vue中Axios的封装与API接口的管理详解
- vue 组件的封装之基于axios的ajax请求方法
- vue中axios的封装
- vue中axios的封装问题(简易版拦截,get,post)
- vue中Axios的封装和API接口的管理(更新)
- vue项目中对axios的封装
- 在Vue-cli里基于axios封装复用请求
- 详解Vue整合axios的实例代码
- vue 组件的封装之基于axios的ajax请求
- vue中Axios的封装和API接口的管理
- 浅谈在Vue-cli里基于axios封装复用请求
- vue项目中axios使用详解
- vue搭配axios踩坑
- 基于vue、vue-router、axios的App项目的总结
- 基于axios封装fetch方法及调用实例
- vue中axios解决跨域问题和拦截器的使用方法
- iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解