vueリクエストaxioの使用詳細

11402 ワード

vueリクエストaxioの使用詳細
  • 取付
  • npm install axios
  • axiosインスタンス
    import axios from 'axios'
    //           ,         ,   ,     
    const host = process.env.NODE_ENV === "development"? "    " : "    "
    axios.defaults.withCredentials = true //          cookie
      axios.defaults.crossDomain = true;//  axios  
      axios.defaults.headers.post['Content-Type'] = 'application/json; charset=UTF-8'//       
    
    const ajax = axios.create({
        basURL:host,
        timeout: 6000,//      
    
    })
    
    
  • を作成する
  • axioのブロッキング
  • 対要求ブロック
    ajax.interceptors.request.use((req)=>{
        //        ,            
            loading  
        return req
    })
    
  • 応答に対するブロック
    ajax.interceptors.response.use((res)=>{
        //        ,            
            loading    
        return res.data.body
    })
    export default ajax//    
    
  • 使用形態
  • はmainにグローバルに使用する.js(メインエントランス)中
  • import * as $http from './requests'
    Vue.protoype.$http = $http
        this   $http   ajax
    

  • 要求されたjsファイルを管理するためのapiフォルダを新規作成し、フォルダ内でブロック化し、jsファイル
    //           api.js
    import  request    from '@/utils/request' //     ajax
    //      2 
    export const getData= (params)=>{ //get  
        request.get('data/user', {
        params: {
          ID: params
        }
      })
    }
    expot const getData2 = (params) =>{ //post  
        request.post('data/user', {
            ...params
      })
    }
    //     
    export function getData3(data) { //post
      return request({
        url: 'data/list',
        method: 'post',
        data: { ...data }
      })
    }
    
    export function getData4(id) { //get
      return request({
        url: 'data/one?id=' + id,
        method: 'GET'
      })
    }
    
    
    axioをpromise呼び出しに基づいてthen(callback)メソッドを確立し、vueページで呼び出しを導入するだけで
    <script>
    import { getData, getData2, getData4 } from '@/api/api'
        export default {
             data() {
                  return {
                  }
             },
            methods: {
            const params = '     '
            getData(params)
             .then(function (response) {
                    console.log(response);
                  })
              .catch(function (error) {
                    console.log(error);
                  });
        }
        } 
    </script>