


Comment utiliser Vue pour encapsuler secondairement le plug-in axios
Cette fois, je vais vous montrer comment utiliser Vue pour ré-encapsuler le plug-in axios. Quelles sont les précautions pour utiliser Vue pour ré-encapsuler le plug-in axios. Voici des cas pratiques. , jetons un coup d'oeil.
Quelle que soit la méthode utilisée pour obtenir les données, pour un projet, le code doit être facile à maintenir et deuxièmement, il doit être magnifiquement écrit, donc l'ajout d'une couche d'encapsulation est nécessaire
vuejs2.0 vue-resource n'est plus maintenu, vuejs2.0 a utilisé axios, ce qui est la principale raison pour laquelle je vais passer à axios, sans plus tarder :
Exigences de base en matière d'emballage :
Configuration d'url unifiée
Demande d'API unifiée
intercepteur de requête (requête), par exemple : Apportez un jeton, etc., définissez l'en-tête de la demande
intercepteur de réponse (réponse), par exemple : gestion des erreurs unifiée , redirection de page, etc.
Si nécessaire, combinez Vuex pour effectuer une animation de chargement global ou une gestion des erreurs
Encapsulez axios dans un plug-in Vue et utilisez-le
Structure des fichiers
Utilisez vue-cli pour l'encapsulation associée, sous le dossier src :
src | -- http 封装axios模块文件夹 | ---- config.js axios的默认配置 ---- api.js 二次封装axios,拦截器等 ---- interface.js 请求接口文件 ---- index.js 将axios封装成插件
config.js
Référez-vous à gitHub pour la configuration par défaut. Ce qui suit n'est qu'un exemple :
export default { method: 'post', // 基础url前缀 baseURL: 'https://easy-mock.com/mock/5ad75e9f41d4d65f0e935be4/example', // 请求头信息 headers: { 'Content-Type':'application/json;charset=UTF-8' }, // 参数 data: {}, // 设置超时时间 timeout: 10000, // 携带凭证 withCredentials: false, // 返回数据类型 responseType: 'json' }
PS : voici un outil Mock Easy Mock recommandé. outil. J'écrirai séparément sur la façon d'utiliser cet outil lorsque j'en aurai le temps à l'avenir.
api.js
import axios from 'axios' // 注意先安装哦 import config from './config.js' // 倒入默认配置 import qs from 'qs' // 序列化请求数据,视服务端的要求 export default function $axios (options) { return new Promise((resolve, reject) => { const instance = axios.create({ baseURL: config.baseURL, headers: {}, transformResponse: [function (data) {}] } ) // request 拦截器 instance.interceptors.request.use( config => { // Tip: 1 // 请求开始的时候可以结合 vuex 开启全屏的 loading 动画 // Tip: 2 // 带上 token , 可以结合 vuex 或者重 localStorage // if (store.getters.token) { // config.headers['X-Token'] = getToken() // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改 // } else { // // 重定向到登录页面 // } // Tip: 3 // 根据请求方法,序列化传来的参数,根据后端需求是否序列化 if (config.method.toLocaleLowerCase() === 'post' || config.method.toLocaleLowerCase() === 'put' || config.method.toLocaleLowerCase() === 'delete') { config.data = qs.stringify(config.data) } return config }, error => { // 请求错误时做些事(接口错误、超时等) // Tip: 4 // 关闭loadding console.log('request:', error) // 1.判断请求超时 if (error.code === 'ECONNABORTED' && error.message.indexOf('timeout') !== -1) { console.log('根据你设置的timeout/真的请求超时 判断请求现在超时了,你可以在这里加入超时的处理方案') // return service.request(originalRequest);//例如再重复请求一次 } // 2.需要重定向到错误页面 const errorInfo = error.response console.log(errorInfo) if (errorInfo) { // error =errorInfo.data//页面那边catch的时候就能拿到详细的错误信息,看最下边的Promise.reject const errorStatus = errorInfo.status; // 404 403 500 ... 等 router.push({ path: `/error/${errorStatus}` }) } return Promise.reject(error) // 在调用的那边可以拿到(catch)你想返回的错误信息 } ) // response 拦截器 instance.interceptors.response.use( response => { let data; // IE9时response.data是undefined,因此需要使用response.request.responseText(Stringify后的字符串) if(response.data == undefined){ data = response.request.responseText } else{ data = response.data } // 根据返回的code值来做不同的处理(和后端约定) switch (data.code) { case '': break; default: } // 若不是正确的返回code,且已经登录,就抛出错误 // const err = new Error(data.description) // err.data = data // err.response = response // throw err return data }, err => { if (err && err.response) { switch (err.response.status) { case 400: err.message = '请求错误' break case 401: err.message = '未授权,请登录' break case 403: err.message = '拒绝访问' break case 404: err.message = `请求地址出错: ${err.response.config.url}` break case 408: err.message = '请求超时' break case 500: err.message = '服务器内部错误' break case 501: err.message = '服务未实现' break case 502: err.message = '网关错误' break case 503: err.message = '服务不可用' break case 504: err.message = '网关超时' break case 505: err.message = 'HTTP版本不受支持' break default: } } console.error(err) // 此处我使用的是 element UI 的提示组件 // Message.error(`ERROR: ${err}`); return Promise.reject(err) // 返回接口返回的错误信息 } ) //请求处理 instance(options) .then((res) => { resolve(res) return false }) .catch((error) => { reject(error) }) }) }
interface.js
import axios from './api' // 倒入 api /* 将所有接口统一起来便于维护 * 如果项目很大可以将 url 独立成文件,接口分成不同的模块 * 此处的数据依然来自 Easy Mock */ // 单独倒出 export const query = params => { return axios({ url: '/query', method: 'get', params }) } export const mock = params => { return axios({ url: '/mock', method: 'get', params }) } export const upload = data => { return axios({ url: '/upload', method: 'post', data }) } // 默认全部倒出 // 根绝需要进行 export default { query, mock, upload }
index.js
est encapsulé dans un plug-in Vue, qui peut être utilisé en (haut) (B) et (grille)
// 倒入所有接口 import apiList from './interface' const install = Vue => { if (install.installed) return; install.installed = true; Object.defineProperties(Vue.prototype, { // 注意哦,此处挂载在 Vue 原型的 $api 对象上 $api: { get() { return apiList } } }) } export default install
Utilisation
À ce stade, tout est prêt. Effectuez les opérations suivantes dans main.js :
// 倒入 http 文件夹下的 index.js import api from './http/index' Vue.use(api) // 此时可以直接在 Vue 原型上调用 $api 了
Résumé
Au-dessus du l'encapsulation secondaire est plus complète et répond essentiellement à nos besoins précédents
En termes de gestion des erreurs, nous devons également nous mettre d'accord sur la valeur de retour avec le backend et conclure des accords spécifiques
Il y a beaucoup de rappels encapsulés. Lorsque vous les utilisez, vous devez également ajouter then() pour traiter les résultats. En savoir plus sur async & wait. Bien sûr, les bonnes choses doivent être cachées. Je ne les partage pas...
PS : IE9 ne prend pas en charge Promise. Vous devez installer un polyfill
import 'babel-polyfill'
Je crois que vous maîtrisez la méthode après avoir lu. C'est le cas dans cet article. Pour des choses plus excitantes, veuillez faire attention à php Autres articles connexes sur le site chinois !
Lecture recommandée :
Comment utiliser Vue pour intégrer les modèles AdminLTE
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Choix de requête de données dans Vue : AxiosorFetch ? Dans le développement de Vue, la gestion des demandes de données est une tâche très courante. Choisir quel outil utiliser pour les demandes de données est une question à considérer. Dans Vue, les deux outils les plus courants sont Axios et Fetch. Cet article comparera les avantages et les inconvénients des deux outils et donnera un exemple de code pour vous aider à faire votre choix. Axios est un client HTTP basé sur Promise qui fonctionne dans les navigateurs et Node.

Utilisez efficacement Vue et Axios pour implémenter le traitement par lots des données frontales. Dans le développement front-end, le traitement des données est une tâche courante. Lorsque nous devons traiter une grande quantité de données, le traitement des données deviendra très lourd et inefficace s’il n’existe pas de méthode efficace. Vue est un excellent framework frontal et Axios est une bibliothèque de requêtes réseau populaire. Ils peuvent travailler ensemble pour implémenter le traitement par lots des données frontales. Cet article présentera en détail comment utiliser efficacement Vue et Axios pour le traitement par lots de données et fournira des exemples de code pertinents.

Selon les informations de ce site du 17 avril, TrendForce a récemment publié un rapport estimant que la demande pour les nouveaux produits de la plate-forme Blackwell de Nvidia est haussière et devrait entraîner une augmentation de la capacité totale de production d'emballages CoWoS de TSMC de plus de 150 % en 2024. Les nouveaux produits de la plate-forme Blackwell de NVIDIA comprennent des GPU de série B et des cartes accélératrices GB200 intégrant le propre processeur GraceArm de NVIDIA. TrendForce confirme que la chaîne d'approvisionnement est actuellement très optimiste quant au GB200. On estime que les livraisons en 2025 devraient dépasser le million d'unités, représentant 40 à 50 % des GPU haut de gamme de Nvidia. Nvidia prévoit de livrer des produits tels que le GB200 et le B100 au second semestre, mais le conditionnement des plaquettes en amont doit encore adopter des produits plus complexes.

En tant que monnaie leader dans le domaine de l'intelligence artificielle de l'IA, la monnaie FET a attiré beaucoup d'attention en raison de son retour sur investissement considérable. La monnaie FET n'est pas seulement un jeton quantitatif divisible utilisé par la plateforme Fetch.ai, mais aussi les contrats intelligents de la plateforme. oracles. Une partie importante de. Avec l'arrivée du marché haussier, le prix des pièces FET continue d'augmenter, mais les investisseurs ne sont toujours pas satisfaits de cette tendance du marché. Ils veulent savoir dans combien de temps les pièces FET connaîtront-elles une deuxième hausse ? J'aimerais également savoir dans quelle mesure les analystes du cercle monétaire prédisent la hausse maximale des pièces FET ? Selon les prévisions des analystes du cercle, la deuxième poussée se produira en 2025, avec une hausse maximale de 8,15 dollars. Ensuite, l'éditeur vous le dira en détail. Dans combien de temps les pièces FET connaîtront-elles une deuxième poussée ? Selon les prévisions des analystes du cercle, la monnaie FET va exploser pour la deuxième fois.

Vue et Axios réalisent un traitement synchrone des demandes de données asynchrones Introduction : Dans le développement frontal moderne, parce que la page doit obtenir des données via des demandes de données asynchrones et les afficher de manière dynamique, le traitement asynchrone est devenu une exigence inévitable. Cependant, les demandes de données asynchrones rendent souvent la logique du code complexe et difficile à maintenir. Dans le framework Vue, la bibliothèque Axios peut être utilisée pour implémenter facilement le traitement synchrone des demandes de données asynchrones, améliorant ainsi la lisibilité et la maintenabilité du code. 1. Introduction à Vue Vue est un framework frontal léger.

Ce site Web a rapporté le 9 juillet que les processeurs de la série « Strix » à architecture AMD Zen5 auront deux solutions de packaging. Le plus petit StrixPoint utilisera le package FP8, tandis que le StrixHalo utilisera le package FP11. Source : source videocardz @Olrak29_ La dernière révélation est que la taille du boîtier FP11 de StrixHalo est de 37,5 mm x 45 mm (1 687 millimètres carrés), ce qui est la même que la taille du boîtier LGA-1700 des processeurs Intel AlderLake et RaptorLake. Le dernier APU Phoenix d'AMD utilise une solution de packaging FP8 d'une taille de 25*40 mm, ce qui signifie que le F de StrixHalo

Vue et Axios implémentent la gestion des erreurs et un mécanisme d'invite pour les demandes de données Introduction : Dans le développement de Vue, Axios est souvent utilisé pour les demandes de données. Cependant, dans le processus de développement réel, nous rencontrons souvent des erreurs de requête ou le serveur renvoie des codes d'erreur. Afin d'améliorer l'expérience utilisateur et de détecter et gérer les erreurs de demande en temps opportun, nous devons utiliser certains mécanismes de gestion des erreurs et des invites. Cet article expliquera comment utiliser Vue et Axios pour implémenter des mécanismes de gestion des erreurs et d'invite pour les demandes de données, et fournira des exemples de code. Installer Axi

La technologie d'encapsulation et l'encapsulation d'applications en PHP sont un concept important dans la programmation orientée objet. Elle fait référence à l'encapsulation de données et d'opérations sur les données afin de fournir une interface d'accès unifiée aux programmes externes. En PHP, l'encapsulation peut être réalisée via des modificateurs de contrôle d'accès et des définitions de classe. Cet article présentera la technologie d'encapsulation dans PHP et ses scénarios d'application, et fournira quelques exemples de code spécifiques. 1. Modificateurs de contrôle d'accès encapsulés En PHP, l'encapsulation est principalement réalisée via des modificateurs de contrôle d'accès. PHP fournit trois modificateurs de contrôle d'accès,
