Quatre endroits pour implémenter AJAX dans les applications Vue
Vue ne fournit aucun moyen formel d'implémenter AJAX, et il existe de nombreux modèles de conception différents qui peuvent être utilisés efficacement. Chaque méthode a ses avantages et ses inconvénients et doit être jugée en fonction de vos besoins. Vous pouvez même en utiliser plusieurs en même temps !
Dans cet article, je vais vous montrer quatre endroits pour implémenter AJAX dans votre application Vue :
Instance racine
Composants
Actions Vuex
Garde de navigation d'itinéraire
Je vais expliquer chaque méthode, donner un exemple et discuter de ses avantages et inconvénients.
1. Instance racine
En utilisant cette architecture, vous pouvez effectuer toutes les requêtes AJAX à partir de l'instance racine, et stocke tous les états dans l’instance racine. Il agira comme une aide si un composant enfant a besoin de données. Si un composant enfant doit actualiser les données, l'instance racine sera invitée à le demander à l'aide d'un événement personnalisé.
Exemple :
new Vue({ data: { message: '' }, methods: { refreshMessage(resource) { this.$http.get('/message').then((response) { this.message = response.data.message; }); } } }) Vue.component('sub-component', { template: '<div>{{ message }}</div>', props: [ 'message' ] methods: { refreshMessage() { this.$emit('refreshMessage'); } } });
Avantages :
Conservez toute la logique et les données AJAX au même endroit.
Gardez les composants "stupides" afin qu'ils puissent se concentrer sur la présentation.
Inconvénients :
À mesure que l'application se développe, un grand nombre d'accessoires et d'événements personnalisés sont nécessaires .
2. Composants
Grâce à cette architecture, les composants sont responsables d'une gestion indépendante Leur propres requêtes et statuts AJAX. En pratique, vous souhaiterez peut-être créer plusieurs composants « conteneurs » qui gèrent les données pour leurs propres groupes de composants « présentation » locaux.
Par exemple, filter-list peut être un composant de conteneur enveloppant l'entrée du filtre et la réinitialisation du filtre, qui agissent comme composants de présentation . La liste de filtres contiendra la logique AJAX et gérera les données de tous les composants du groupe, en communiquant via des accessoires et des événements.
Pour faciliter la mise en œuvre de cette architecture, vous pouvez extraire n'importe quelle logique AJAX dans un mixin, puis utiliser le mixin dans le composant pour le rendre compatible AJAX.
let mixin = { methods: { callAJAX(resource) { ... } } } Vue.component('container-comp', { // No meaningful template, I just manage data for my children template: '<div><presentation-comp :mydata="mydata"></presentation-comp></div>', mixins: [ myMixin ], data() { return { ... } }, }) Vue.component('presentation-comp', { template: <div>I just show stuff like {{ mydata }}</div>, props: [ 'mydata' ] })
Avantages :
Conserver les composants Découplé et réutilisable.
Obtenez les données dont vous avez besoin quand et où.
Inconvénients :
Pas facile de communiquer des données avec d'autres composants ou groupes de composants.
Les composants peuvent avoir trop de responsabilités et des fonctionnalités en double.
3. Vuex en action
En utilisant cette architecture, vous pouvez utiliser Vuex Manage logique d'état et logique AJAX dans le stockage. Les composants peuvent demander de nouvelles données via des opérations de répartition.
Si vous implémentez ce modèle, c'est une bonne idée de renvoyer une promesse dans l'action afin de pouvoir analyser et répondre aux requêtes AJAX, telles que le masquage des spinners de chargement, la réactivation des boutons, etc.
store = new Vuex.Store({ state: { message: '' }, mutations: { updateMessage(state, payload) { state.message = payload } }, actions: { refreshMessage(context) { return new Promise((resolve) => { this.$http.get('...').then((response) => { context.commit('updateMessage', response.data.message); resolve(); }); }); } } }); Vue.component('my-component', { template: '<div>{{ message }}</div>', methods: { refreshMessage() { this.$store.dispatch('refeshMessage').then(() => { // do stuff }); } }, computed: { message: { return this.$store.state.message; } } });
J'aime cette architecture car elle découple bien la logique d'état et de présentation. Si vous utilisez Vuex, voici une façon de procéder. Si vous n'utilisez pas Vuex, c'est probablement une raison suffisante.
Avantages :
Toute l'architecture des composants racine Avantages, aucun accessoire ou événement personnalisé requis.
Inconvénients :
Augmentation des frais généraux de Vuex
4. Route Navigation Guard
En utilisant cette architecture, votre application sera divisée en plusieurs pages et, lorsque l'itinéraire change, obtiendra toutes les données. nécessaire pour la page et ses sous-composants.
Le principal avantage de cette approche est qu'elle simplifie vraiment l'interface utilisateur. Si les composants obtiennent leurs propres données indépendamment, la page sera restituée de manière imprévisible lorsque les données des composants sont renseignées dans un ordre arbitraire.
实现此功能的一个简单方法是在服务器上为每个页面创建端点,例如/about、/contact等,这些端点与应用程序中的路由名匹配。然后,可以实现一个通用的beforeRouteEnter钩子,将所有数据属性合并到页面组件的数据中:
import axios from 'axios'; router.beforeRouteEnter((to, from, next) => { axios.get(`/api${to.path}`).then(({ data }) => { next(vm => Object.assign(vm.$data, data)) }); })
优点:
使UI更加可预测。
缺点:
整体上比较慢,因为页面在所有数据都准备好之前无法呈现。
如果您不使用路由,也没有多大帮助。
附加模式:服务器—在页面中呈现第一个AJAX调用
不建议在初始页面加载时使用AJAX检索应用程序状态,因为它需要额外的到服务器的往返,这会延迟应用程序的呈现。
相反,将初始应用程序状态注入HTML页面头部的内联脚本中,以便在需要时将其作为全局变量提供给应用程序。
<html> ... <head> ... <script type="text/javascript"> window.__INITIAL_STATE__ = '{ "data": [ ... ] }'; </script> </head> <body> <div id="app"></div> </body> </html>
然后,AJAX可以更恰当地用于后续数据获取。
相关推荐:
更多编程相关知识,请访问:编程入门!!
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)

Titre : Méthodes et exemples de code pour résoudre les erreurs 403 dans les requêtes jQuery AJAX L'erreur 403 fait référence à une demande selon laquelle le serveur interdit l'accès à une ressource. Cette erreur se produit généralement parce que la demande manque d'autorisations ou est rejetée par le serveur. Lorsque vous effectuez des requêtes jQueryAJAX, vous rencontrez parfois cette situation. Cet article explique comment résoudre ce problème et fournit des exemples de code. Solution : Vérifiez les autorisations : assurez-vous d'abord que l'adresse URL demandée est correcte et vérifiez que vous disposez des autorisations suffisantes pour accéder à la ressource.

jQuery est une bibliothèque JavaScript populaire utilisée pour simplifier le développement côté client. AJAX est une technologie qui envoie des requêtes asynchrones et interagit avec le serveur sans recharger la page Web entière. Cependant, lorsque vous utilisez jQuery pour effectuer des requêtes AJAX, vous rencontrez parfois des erreurs 403. Les erreurs 403 sont généralement des erreurs d'accès refusé par le serveur, probablement en raison de problèmes de politique de sécurité ou d'autorisation. Dans cet article, nous verrons comment résoudre la requête jQueryAJAX rencontrant une erreur 403.

L'utilisation d'Ajax pour obtenir des variables à partir de méthodes PHP est un scénario courant dans le développement Web. Grâce à Ajax, la page peut être obtenue dynamiquement sans actualiser les données. Dans cet article, nous présenterons comment utiliser Ajax pour obtenir des variables à partir de méthodes PHP et fournirons des exemples de code spécifiques. Tout d’abord, nous devons écrire un fichier PHP pour gérer la requête Ajax et renvoyer les variables requises. Voici un exemple de code pour un simple fichier PHP getData.php :

Comment résoudre le problème de l’erreur 403 jQueryAJAX ? Lors du développement d'applications Web, jQuery est souvent utilisé pour envoyer des requêtes asynchrones. Cependant, vous pouvez parfois rencontrer le code d'erreur 403 lors de l'utilisation de jQueryAJAX, indiquant que l'accès est interdit par le serveur. Cela est généralement dû aux paramètres de sécurité côté serveur, mais il existe des moyens de résoudre le problème. Cet article explique comment résoudre le problème de l'erreur 403 jQueryAJAX et fournit des exemples de code spécifiques. 1. faire

Créez un moteur de suggestions de saisie semi-automatique en utilisant PHP et Ajax : Script côté serveur : gère les requêtes Ajax et renvoie des suggestions (autocomplete.php). Script client : envoyer une requête Ajax et afficher des suggestions (autocomplete.js). Cas pratique : Incluez le script dans la page HTML et spécifiez l'identifiant de l'élément d'entrée de recherche.

Ajax (Asynchronous JavaScript et XML) permet d'ajouter du contenu dynamique sans recharger la page. En utilisant PHP et Ajax, vous pouvez charger dynamiquement une liste de produits : HTML crée une page avec un élément conteneur et la requête Ajax ajoute les données à l'élément après l'avoir chargé. JavaScript utilise Ajax pour envoyer une requête au serveur via XMLHttpRequest afin d'obtenir des données produit au format JSON à partir du serveur. PHP utilise MySQL pour interroger les données produit de la base de données et les encoder au format JSON. JavaScript analyse les données JSON et les affiche dans le conteneur de pages. Cliquer sur le bouton déclenche une requête Ajax pour charger la liste de produits.

Afin d'améliorer la sécurité Ajax, il existe plusieurs méthodes : Protection CSRF : générer un token et l'envoyer au client, l'ajouter côté serveur dans la demande de vérification. Protection XSS : utilisez htmlspecialchars() pour filtrer les entrées afin d'empêcher l'injection de scripts malveillants. En-tête Content-Security-Policy : limite le chargement de ressources malveillantes et spécifie les sources à partir desquelles les scripts et les feuilles de style peuvent être chargés. Valider les entrées côté serveur : validez les entrées reçues des requêtes Ajax pour empêcher les attaquants d'exploiter les vulnérabilités d'entrée. Utilisez des bibliothèques Ajax sécurisées : profitez des modules de protection CSRF automatiques fournis par des bibliothèques telles que jQuery.

Comment utiliser les fonctions Ajax pour réaliser une interaction de données asynchrone Avec le développement de la technologie Internet et Web, l'interaction des données entre le front-end et le back-end est devenue très importante. Les méthodes traditionnelles d’interaction avec les données, telles que l’actualisation des pages et l’envoi de formulaires, ne peuvent plus répondre aux besoins des utilisateurs. Ajax (JavaScript asynchrone et XML) est devenu un outil important pour l'interaction de données asynchrones. Ajax permet au Web d'utiliser JavaScript et l'objet XMLHttpRequest
