この記事では、Vue での axios パッケージ化の基本的な概要を説明します (コード付き)。必要な方は参考にしていただければ幸いです。
Axios は、ブラウザーと Node.js で使用できる Promise ベースの HTTP ライブラリです。 vue プロジェクトで axios を使用することは非常に賢明な選択です。なぜなら、vue 関係者は今後 vue-resource を保守せず、axios の使用を推奨すると発表したからです。
1 なぜ axios を選ぶのですか?
axios を使用すると、たとえば、応答時に応答情報を傍受し、ステータス コードを判断し、
リクエストのタイムアウトを設定します。例えば、3000ms経っても応答がない場合、リクエストは停止されます
promiseに基づいて、thenまたはcatchを使用してリクエストを簡単に処理できます
jsonデータを自動的に変換します
2 使用方法?
次のメソッドを使用して http リクエストをカプセル化できます
1. npm install axios --save 2. bower install axios --save 3. <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
3。公式 Web サイトで示されている例:
axios.get('/user?ID=12345') .then(function(response){ console.log(response); }) .catch(function(err){ console.log(err); });
たとえば、index.vue の関数を使用して、id を通じて対応するユーザー情報を取得し、返される結果は then メソッドの結果になります
API.getUserInfo({id:'01'}).then((result)=>{})
新しいファイルを作成し、次のような axios オブジェクト インスタンスを構築しますas axios.js
import axios from 'axios'; import router from '../router'; // 创建axios实例 const service = axios.create({ timeout: 30000 // 请求超时时间 }) // 添加request拦截器 service.interceptors.request.use(config => { return config }, error => { Promise.reject(error) }) // 添加respone拦截器 service.interceptors.response.use( response => { let res={}; res.status=response.status res.data=response.data; return res; }, error => { if(error.response && error.response.status == 404){ router.push('/blank.vue') } return Promise.reject(error.response) } ) export function get(url, params = {}) { params.t = new Date().getTime(); //get方法加一个时间参数,解决ie下可能缓存问题. return service({ url: url, method: 'get', headers: { }, params }) } //封装post请求 export function post(url, data = {}) { //默认配置 let sendObject={ url: url, method: 'post', headers: { 'Content-Type':'application/json;charset=UTF-8' }, data:data }; sendObject.data=JSON.stringify(data); return service(sendObject) } //封装put方法 (resfulAPI常用) export function put(url,data = {}){ return service({ url: url, method: 'put', headers: { 'Content-Type':'application/json;charset=UTF-8' }, data:JSON.stringify(data) }) } //删除方法(resfulAPI常用) export function deletes(url){ return service({ url: url, method: 'delete', headers: {} }) } //不要忘记export export { service }
api.js などの新しいファイルを作成します
import {get, post,deletes,put} from './axios.js' ;//导入axios实例文件中方法 let bsae_api = process.env.BASE_API ? './'+process.env.BASE_API :'..' //获取项目api请求地址 //根据id获取用户信息 export const getUserInfoById=(id)=>{ return get(`${bsae_api}/web/user/${id}`); //resfulapi风格 }
import API from '@/utils/api' getUserInfo(){ API.getUserInfoById('01).then((result)=>{ }).catch((error)=>{ }) }
以上がvue での axios パッケージ化の基本的な紹介 (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。