vue에서 axios의 캡슐화에 대한 간략한 토론

青灯夜游
풀어 주다: 2020-11-02 18:00:39
앞으로
2669명이 탐색했습니다.

다음Vue.js 튜토리얼칼럼에서는 vue에서 axios를 캡슐화하는 방법을 안내합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

vue에서 axios의 캡슐화에 대한 간략한 토론

vue의 axios 패키지

첫 번째 단계는 axios를 먼저 다운로드하는 것입니다

cnpm install axios -S
로그인 후 복사

두 번째 단계는 http.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", query:{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) }) }) }
로그인 후 복사

를 만드는 것입니다. 세 번째 단계

메인에

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;
로그인 후 복사

를 소개합니다. js

마지막으로 컴포넌트에서 직접 사용
mounted(){ this.$fetch('/api/v2/movie/top250') .then((response) => { console.log(response) }) }, //其余的方法一样
로그인 후 복사


관련 추천:

2020 프론트엔드 vue 인터뷰 질문 요약(답변 포함)

vue 튜토리얼 추천: 2020 최신 5 vue.js 비디오 튜토리얼 선택

더 많은 프로그래밍 관련 지식을 보려면프로그래밍 교육
을 방문하세요! !

위 내용은 vue에서 axios의 캡슐화에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.