国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Vue3 學習筆記— Axios 的使用有變化嗎?

開發 前端
本篇文章主要目的就是想告訴我身邊,正在學 vue3 或者 準備學 vue3 的同學,vue3中網絡請求axios該如何使用.

[[435413]]

本篇文章主要目的就是想告訴我身邊,正在學 vue3 或者 準備學 vue3 的同學,vue3中網絡請求axios該如何使用,防止接觸了一點點 vue3 的同學會有個疑問?生命周期、router 、vux使用都改變了,那 axios 使用有沒有啥改變?

小姐姐

使用 axios 之前,需要先安裝好。

  1. yarn add axios 
  2.  
  3. npm install axios 
  4.  
  5. bower install axios 
  6.  
  7. <script src="https://unpkg.com/axios/dist/axios.min.js"></script> 

上邊的四種安裝方式,根據你創建的項目,自行選擇方式。

一、axio 得基本使用

先創建一個組件,引入 axios 測試一下引入成功沒有!寫入以下代碼:

  1. import axios from "axios" 
  2. import { onMounted } from "vue" 
  3. export default { 
  4.  setup(){ 
  5.   onMounted(()=>{ 
  6.    axios({ 
  7.     url:'https://xxxxxx.net/hj/mp/banner/l' 
  8.    }) 
  9.   }) 
  10.  } 

onMounted 是生命周期鉤子函數,頁面加載完成,就會調用這個網絡請求。axios的方法沒有設置網絡請求方式。默認是 GET 請求。

打開服務,查看網絡請求的時候發現,請求失敗了:

報錯內容:Access to XMLHttpRequest at '

https://xxxxx/hj/mp/banner/l' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

提示存在跨域問題。

二、如何解決跨域問題?

使用 proxy 代理解決這個問題,新建 vue.config.js 文件,添加配置:

  1. module.exports={ 
  2.  devServer:{ 
  3.   proxy:{ 
  4.    '/api':{ 
  5.     target:'https://xxxxx.net'
  6.     changeOrigin:true
  7.     pathRewrite:{ 
  8.      '^/api':'' 
  9.     } 
  10.    } 
  11.   } 
  12.  } 

刷新頁面查看效果的時候就尷尬了,請求地址完全正確,但是一直提示 404 找不到地址。

vue2中的項目,請求正常,但是在vue3中就是404。

vue3 學習筆記 (二)——axios 的使用有變化嗎?

在網絡請求處,添加全局配置,并把請求處的url中域名刪除掉。

  1. axios.defaults.baseURL ='/api' 
  2. axios.defaults.headers.post['Content-Type'] = 'application/json' 
  3.  axios({ 
  4.   url:'/hj/mp/banner/l' 
  5. }) 

修改完成后,刷新頁面網絡請求就變成成功了。

三、封裝

沒用一次三方庫,講最多的就是如何封裝,封裝后如何使用,直接用不香嗎?

很明白地告訴你,還是太年輕....多吃幾次虧就記住了。封裝最大優點就是,如果三方框架內有 bug 或者需要更改三方的時候,你只需要修改一個地方就修改完了,維護方便,工作量小,還不容易遺漏。

由于axios請求方法很多,所以封裝的時候可以有多種類型。

方式1:

  1. import axios from 'axios' 
  2.  
  3. //全局配置 
  4. axios.defaults.baseURL = "/api" 
  5. axios.defaults.timeout = 5000 
  6.  
  7. //攔截器 
  8. axios.interceptors.request.use( config=>{ 
  9.  return config 
  10. },error=>{ 
  11.  return Promise.error(error) 
  12. }) 
  13. axios.interceptors.response.use( response=>{ 
  14.  return response.data 
  15. },error=>{ 
  16.  return Promise.error(error) 
  17. }) 
  18.  
  19. export function request(url='',params={},type='POST'){ 
  20.  //設置 url params type 的默認值 
  21.  return new Promise((resolve,reject)=>{ 
  22.   let promise 
  23.   if( type.toUpperCase()==='GET' ){ 
  24.    promise = axios({ 
  25.     url, 
  26.     params 
  27.    }) 
  28.   }else if( type.toUpperCase()=== 'POST' ){ 
  29.    promise = axios({ 
  30.     method:'POST'
  31.     url, 
  32.     data:params 
  33.   }) 
  34.   } 
  35.     //處理返回 
  36.   promise.then(res=>{ 
  37.    resolve(res) 
  38.   }).catch(err=>{ 
  39.    reject(err) 
  40.   }) 
  41.  }) 
  42.  
  43. //使用時調用 
  44. import {request} from '../network/request.js' 
  45. export default { 
  46.  mounted(){ 
  47.   request('/hj/mp/banner/l').then(res=>{ 
  48.    console.log(res); 
  49.   }).catch(err=>{ 
  50.    console.log(err); 
  51.   }) 
  52.  } 

 由于 axios 返回本身就是一個promise對象,所以我們可以不給外層實例化 promise 對象,封裝變得更簡單。

方式2:

  1. import axios from 'axios' 
  2.  
  3. //全局配置 
  4. axios.defaults.baseURL = "/api" 
  5. axios.defaults.timeout = 5000 
  6.  
  7. export function request(config){ 
  8.  const instace = axios.create({ 
  9.   timeout:50000, 
  10.   method:'post' 
  11.  }) 
  12.  
  13.   //請求攔截 
  14.  instace.interceptors.request.use(config=>{ 
  15.   return config 
  16.  },err=>{}) 
  17.  //響應攔截 
  18.  instace.interceptors.response.use(res=>{ 
  19.   return res.data 
  20.  },err=>{ 
  21.   //錯誤處理 
  22.  }) 
  23.  return instace(config) 
  24. //使用時調用 
  25. import {request} from './request' 
  26. request({ 
  27.  url:'/hj/mp/banner/l'
  28. }).then(res=>{ 
  29.  console.log(res); 
  30. }).catch(err=>{ 
  31.  console.log(err); 
  32. }) 

axios的封裝方式有很多,感興趣的同學,可以自己去 axios 文檔了解下,試著自己封裝一個,或者收藏一下,日后直接復制使用就好了,不用再辛苦封裝了。

四、全局引用 axios

可以把上述封裝的 request 方法,通過全局引用,這樣在項目的任意文件內就都可以使用了。

在main.js內添加全局屬性

  1. const app = createApp(App) 
  2. app.config.globalProperties.$http = request 
  3. app.mount('#app'

上述三者的順序不可以調整哦!

在組件內使用時:

  1. import { defineComponent, getCurrentInstance ,onMounted } from "vue" 
  2. export default defineComponent ({ 
  3.  setup(props,ctx){ 
  4.   const { proxy } = getCurrentInstance() 
  5.   onMounted(()=>{ 
  6.    console.log(proxy); 
  7.    proxy.$http('/hj/mp/banner/l').then(res=>{ 
  8.     console.log(res); 
  9.    }) 
  10.   }) 
  11.  } 
  12. }) 

 能看到最后的恭喜你了,vue3中axios使用有變化的也就這點東西了。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2023-12-14 08:25:14

WatchVue.js監聽數據

2021-12-29 07:51:21

Vue3 插件Vue應用

2021-12-01 08:11:44

Vue3 插件Vue應用

2021-11-30 08:19:43

Vue3 插件Vue應用

2023-11-28 09:03:59

Vue.jsJavaScript

2021-11-16 08:50:29

Vue3 插件Vue應用

2021-12-02 05:50:35

Vue3 插件Vue應用

2021-12-08 09:09:33

Vue 3 Computed Vue2

2022-06-29 16:59:21

Vue3Vue2面試

2023-06-02 07:32:34

localStorage?監聽

2023-12-11 07:34:37

Computed計算屬性Vue3

2021-12-15 08:23:42

Vue3 插件Vue應用

2025-08-01 09:09:02

2025-08-27 06:15:00

2023-11-29 08:49:31

Vue.jsData 函數

2025-05-08 08:44:29

2021-11-26 05:59:31

Vue3 插件Vue應用

2023-12-06 07:43:56

Vue如何定義事件

2024-11-06 10:16:22

2021-01-15 05:16:37

Vue3開源代碼量
點贊
收藏

51CTO技術棧公眾號

男人天堂a在线| 日韩中文字幕麻豆| 极品美女一区二区三区| 91精品国产福利在线观看| 91视频免费版污| 日本不卡高清视频| 91亚洲精品久久久| 日本一区二区三区视频在线看 | 2019亚洲男人天堂| av岛国在线| 亚洲成人精品一区| 黄色一级片在线看| 丝袜脚交一区二区| 91久色国产| 日韩高清在线免费观看| 亚洲女人天堂色在线7777| 日本精品在线| 狠狠躁夜夜躁人人爽天天天天97 | 国产写真视频在线观看| 国产精品视频九色porn| 黄色a级片免费看| 久久一区激情| 精品国产综合| 永久亚洲成a人片777777| 日本午夜精品理论片a级appf发布| 国产成人免费精品| 亚洲美女av网站| 肉肉视频在线观看| 在线看一区二区| 一级在线免费观看| 婷婷一区二区三区| 在线播放av片| 亚洲欧美日韩电影| 国产主播在线资源| 一二三区精品福利视频| 最新二区三区av| 亚洲va天堂va国产va久| 中文字幕中文字幕在线中文字幕三区 | 香蕉一区二区| 欧美专区第一页| 日本亚洲不卡| 免费欧美电影| 欧美独立站高清久久| 国语自产在线不卡| 成人黄色av网址| 亚州国产精品久久久| 国产日韩三级| 国产精品久久久久久久久久| 色喇叭免费久久综合网| 91精品久久久久久久久青青| 小处雏高清一区二区三区| 91亚洲一区精品| 欧美日韩国产精品一区二区亚洲| 福利视频一区二区三区| 亚洲在线观看| 蜜臀在线免费观看| 国产福利一区在线观看| 狠狠干 狠狠操| 国产精品卡一卡二卡三| 写真福利片hd在线观看| 色诱亚洲精品久久久久久| 亚洲三级电影网站| 国产精品视频中文字幕| 亚洲国产成人91porn| 国产高清免费av在线| 精品国免费一区二区三区| 日本欧美一区| 51精品国产黑色丝袜高跟鞋| 91精品国产91久久综合 | 9999精品成人免费毛片在线看| 亚洲二区中文字幕| 97久久中文字幕| 国产精品va在线播放| 激情欧美一区| 小泽玛利亚av在线| 国产精品久久久久久亚洲伦 | 久久精子c满五个校花| 免费高清特黄a大片| 欧美喷水一区二区| 欧美男女视频| 国产三级精品网站| 日韩国产高清影视| 又色又爽又高潮免费视频国产| 亚洲宅男天堂在线观看无病毒| 欧美日本韩国一区二区| 天堂精品一区二区三区| 波多野结衣一区| 欧美久久在线| 91玉足脚交白嫩脚丫在线播放| 久草免费在线播放| 4438亚洲最大| 97久久超碰| 美日韩精品免费| 久久久综合激的五月天| 精品美女视频在线观看免费软件| 国产婷婷97碰碰久久人人蜜臀 | 欧美一区二区三区图| 亚洲天堂偷拍| 日韩黄色片视频| 欧美日韩精品综合在线| 欧美亚洲二区| 国产一区二区精品在线| 久久久精品蜜桃| 好操啊在线观看免费视频| 欧美交受高潮1| 日韩av午夜在线观看| 黄色三级高清在线播放| 日韩av在线导航| 91精品久久久久久久蜜月| 天堂…中文在线最新版在线| 91福利在线导航| 六月丁香久久丫| 永久免费看av| 欧洲av一区二区嗯嗯嗯啊| 日韩精品免费视频一区二区三区| 精品蜜桃传媒| 亚洲天堂电影| 欧美疯狂party性派对| 青青草影院在线观看| 精品国产91久久久久久老师| 不卡一区视频| 综合国产精品久久久| 欧美日韩国产在线播放| 国产一区二区久久久久| 日韩国产精品一区二区| 欧美日韩在线看| 日韩中文字幕一区二区高清99| 日韩aⅴ视频一区二区三区| 亚洲第一狼人社区| 激情不卡一区二区三区视频在线 | 国产欧美视频在线| 亚洲国产日韩欧美| 一本色道久久加勒比精品| 精品视频高潮| 黄色www网站| 国产午夜精品麻豆| 免费日韩视频| 黄色免费在线播放| 成人在线视频网| 亚洲一二三区视频在线观看| 91欧美日韩在线| av无码精品一区二区三区| 色一区av在线| 成人网页在线观看| av资源网在线播放| 日本免费一区二区三区| 在线一区二区三区四区| 色小子综合网| 激情乱色小说视频| 91精品国产九九九久久久亚洲| 99精品视频在线观看免费| 精品亚洲美女网站| 日韩视频 中文字幕| 亚洲国产精品字幕| 日韩高清不卡一区二区| av网站网址在线观看| 99久久久国产| 国产成人在线播放| 欧美国产日韩a欧美在线观看| 日本午夜免费一区二区| 毛片在线视频观看| 亚洲人高潮女人毛茸茸| 国产乱码精品一区二区三区忘忧草 | 一本到三区不卡视频| 999国产精品999久久久久久| 最近2018中文字幕免费在线视频| 国产91精品在线播放| 亚洲精品自拍动漫在线| 日本午夜精品久久久| 中文字幕毛片| 97久久精品午夜一区二区| 欧美日韩一区二区三区免费看| 亚洲一区激情| 日本蜜桃在线观看视频| 日本大胆人体视频| 另类色图亚洲色图| 中文字幕欧美国产| 国产区精品区| 国产视频网站在线| 翔田千里亚洲一二三区| 国产亚洲精品久久久| 国产亚洲精品超碰| blacked蜜桃精品一区| 91在线网址| 一区一区视频| 一区二区中文字幕| 综合色天天鬼久久鬼色| 欧美91福利在线观看| 成人性生交大片免费看网站| 免费看毛片的网址| 2019中文在线观看| 色老汉av一区二区三区| 石原莉奈一区二区三区在线观看| 欧美大片1688| av在线dvd| 久久精品成人一区二区三区蜜臀| 亚洲国产精品va在线看黑人动漫| 久久久精品影视| 欧美日韩一视频区二区| 亚洲综合电影|