首頁> web前端> Vue.js> 主體

vue3 axios的使用介紹及資料渲染

藏色散人
發布: 2022-08-09 16:14:18
轉載
3714 人瀏覽過

本篇文章為大家介紹如何使用axios方式呼叫介面以及所取得的資料渲染,希望對需要的朋友有幫助!

1、axios的作用是什麼呢?

axios主要是用於向後台發起請求的,還有在請求中做更多是可控功能。 【相關推薦:vue.js影片教學

2、專案安裝axios及其他環境

開啟cmd進入專案根目錄(src同級目錄) ,輸入指令npm install axios

3、新建##axios.js內容複製以下

axios.js

import axios from "axios"; import qs from "qs"; // axios.defaults.baseURL = '' //正式 axios.defaults.baseURL = 'http://localhost:8099' //测试 //post请求头 axios.defaults.headers.post["Content-Type"] ="application/x-www-form-urlencoded;charset=UTF-8"; //设置超时 axios.defaults.timeout = 10000; axios.interceptors.request.use( config => { return config; }, error => { return Promise.reject(error); } ); axios.interceptors.response.use( response => { if (response.status == 200) { return Promise.resolve(response); } else { return Promise.reject(response); } }, error => { alert(`异常请求:${JSON.stringify(error.message)}`) } ); export default { post(url, data) { return new Promise((resolve, reject) => { axios({ method: 'post', url, data: qs.stringify(data), }) .then(res => { resolve(res.data) }) .catch(err => { reject(err) }); }) }, get(url, data) { return new Promise((resolve, reject) => { axios({ method: 'get', url, params: data, }) .then(res => { resolve(res.data) }) .catch(err => { reject(err) }) }) } };
登入後複製

4、直接在vue頁引用,axios.get.post方法

(vue2需要在main.js中掛載全域,vue3每次引用都需要 import,感覺有些臃腫)。

 
登入後複製

展示運作效果

後端介面:

前端展示:

5、踩坑記錄

問題1:vue3 axios Error: Network Error

跨域請求問題,我是在後端攔截器類別中處理的,重寫addCorsMappings 方法

//跨域问题 @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedHeaders("*") .allowedMethods("*") .allowedOriginPatterns("*") .allowCredentials(true); }
登入後複製

問題2:Cannot set properties of undefined (setting 'books')

或者ReferenceError: books is not defined

不能直接給變量賦值,需要透過 methods 方法中

const vm = this;取得變數賦值;

vue 請求介面程式碼需要放置methods,且在created()或mounted()週期函數中呼叫該方法。

created() { //生命周期函数(或者 mounted 函数)调用的方法才能运行 this.getShops(); }, methods: { getShops: function () { const vm = this; //传获取的结果 给页面 } }
登入後複製

問題3:Uncaught ReferenceError: Vue is not defined

或Cannot read properties of undefined (reading 'get')

##vue3不是透過後面物件掛載,我每個頁面直接引用了axios(目前vue3好像只有這種方式)

# 6、vue3入門總結

入門前一定要先認真閱讀vue官網(https://v3.cn.vuejs.org/),了解常見函數及一些基礎的用法。才能在開發中減少踩坑! ! !

以上是vue3 axios的使用介紹及資料渲染的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn