Maison interface Web js tutoriel À propos de la résolution des conflits de routage inter-domaines par Vue

À propos de la résolution des conflits de routage inter-domaines par Vue

Dec 28, 2017 am 10:35 AM
冲突 路由 问题

Vue.js (prononcé /vjuː/, similaire à view) est un framework progressif permettant de créer des interfaces utilisateur. Cet article vous donne une introduction détaillée à l'analyse des idées de Vue pour résoudre les conflits de routage entre domaines. Les amis qui en ont besoin peuvent s'y référer. J'espère qu'il pourra aider tout le monde.

vue introduction

Vue.js (prononcé /vjuː/, similaire à view) est un framework progressif pour la création d'interfaces utilisateur.

Vue se concentre uniquement sur la couche de vue et adopte une conception de développement incrémental ascendant.

L'objectif de Vue est de permettre une liaison de données réactive et des composants de vue composés via l'API la plus simple possible.

Vue est très facile à apprendre. Ce tutoriel est basé sur le test de la version Vue 2.1.8.

Lorsque nous configurons le proxy suivant dans le routage, nous pouvons résoudre le problème inter-domaines

proxyTable: {
   '/goods/*': {
    target: 'http://localhost:3000'
   },
   '/users/*': {
    target: 'http://localhost:3000'
   }
  },
Copier après la connexion

Cette méthode de configuration résout le problème inter-domaines dans une certaine mesure, mais cela entraînera quelques problèmes,

Par exemple, notre route de vue est également nommée marchandises, ce qui provoquera des conflits

S'il y a de nombreuses interfaces dans le projet, c'est très gênant et facile. pour les configurer tous ici. Un conflit de routage se produit.

Posture correcte

Si toutes les interfaces sont unifiées et standardisées comme une seule entrée, les conflits seront résolus dans une certaine mesure

Unifiez les configurations ci-dessus avec /api/ devant eux

proxyTable: {
   '/api/**': {
    target: 'http://localhost:3000'
   },
  },
Copier après la connexion

Si nous le configurons de cette manière, cela changera lors de l'utilisation de la requête http. Une API sera ajoutée devant la requête, la route relative changera également et une API sera ajoutée. devant l'interface. Il sera très difficile de se connecter à l'API. Nous pouvons utiliser les méthodes suivantes pour résoudre ce problème

proxyTable: {
   '/api/**': {
    target: 'http://localhost:3000',
    pathRewrite:{
     '^/api':'/'
    }
   },
  },
Copier après la connexion
Copier après la connexion

Le code ci-dessus consiste à supprimer notre interface API virtuelle pour le moment. , nous allons en fait au backend pour demander. À ce moment-là, le préfixe api ne sera pas ajouté, donc lorsque nous faisons une requête http front-end, nous devons également ajouter le préfixe api pour correspondre au proxy. Le code est le suivant :

logout(){
  axios.post('/api/users/logout').then(result=>{
   let res = result.data;
   this.nickName = '';
   console.log(res);
  })
 },
 getGoods(){
  axios.post('/api/goods/list').then(result=>{
   let res = result.data;
   this.nickName = '';
   console.log(res);
  })
 }
Copier après la connexion

Nous pouvons utiliser la baseUrl d'axios La valeur directe par défaut est api, de sorte qu'à chaque fois que nous y accédons, le préfixe api est automatiquement ajouté, et nous n'avons pas besoin d'écrire manuellement ce préfixe sur chaque interface nous-même

La configuration dans le fichier d'entrée est la suivante :

import Axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios, Axios)
Axios.defaults.baseURL = 'api'
Copier après la connexion

Si vous configurez 'api/', il lira le domaine local par défaut

S'il est configuré ainsi, l'environnement de production et de développement ne sera pas distingué

Dans le dossier config Créez un nouveau fichier de configuration api.config.js

const isPro = Object.is(process.env.NODE_ENV, 'production')
module.exports = {
 baseUrl: isPro ? 'http://www.vnshop.cn/api/' : 'api/'
}
Copier après la connexion
Copier après la connexion

puis introduisez-le dans main. js. Cela peut garantir que le préfixe de définition de production et de développement correspond dynamiquement

import apiConfig from '../config/api.config'
import Axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios, Axios)
Axios.defaults.baseURL = apiConfig.baseUrl
Copier après la connexion
Copier après la connexion

via la configuration ci-dessus, il est facilement accessible dans le dom, et il n'est pas nécessaire d'introduire le module axios. dans n’importe quel composant.

logout(){
  this.$http.post('/users/logout').then(result=>{
   let res = result.data;
   this.nickName = '';
   console.log(res);
  })
 },
 getGoods(){
  this.$http.post('/goods/list').then(result=>{
   let res = result.data;
   this.nickName = '';
   console.log(res);
  })
 }
Copier après la connexion
Copier après la connexion

Le code final

est configuré dans le proxy

proxyTable: {
   '/api/**': {
    target: 'http://localhost:3000',
    pathRewrite:{
     '^/api':'/'
    }
   },
  },
Copier après la connexion
Copier après la connexion

api.config.js dans la config est configuré

dans la config dossier Créez-y un nouveau fichier de configuration api.config.js

const isPro = Object.is(process.env.NODE_ENV, 'production')
module.exports = {
 baseUrl: isPro ? 'http://www.vnshop.cn/api/' : 'api/'
}
Copier après la connexion
Copier après la connexion

Je ne connais pas grand-chose à la configuration de production et de développement

Vous pouvez aller sur dev-server.js pour voir le code de configuration

const webpackConfig = (process.env.NODE_ENV === 'testing' || process.env.NODE_ENV === 'production') ?
 require('./webpack.prod.conf') :
 require('./webpack.dev.conf')
Copier après la connexion

Configurer dans le fichier d'entrée main.js

import apiConfig from '../config/api.config'
import Axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios, Axios)
Axios.defaults.baseURL = apiConfig.baseUrl
Copier après la connexion
Copier après la connexion

Le geste de demander l'API dans le dom

logout(){
  this.$http.post('/users/logout').then(result=>{
   let res = result.data;
   this.nickName = '';
   console.log(res);
  })
 },
 getGoods(){
  this.$http.post('/goods/list').then(result=>{
   let res = result.data;
   this.nickName = '';
   console.log(res);
  })
 }
Copier après la connexion
Copier après la connexion

PS : Allons Apprenez les paramètres inter-domaines sous Vue grâce à un morceau de code

1. Des problèmes inter-domaines sont souvent impliqués lors du développement avec vue. En fait, dans vue cli, nous avons des fichiers pour configurer les requêtes inter-domaines. .

2. Lorsque les requêtes inter-domaines ne peuvent pas être effectuées, nous pouvons modifier la partie dev:{} dans index.js dans le dossier de configuration sous le projet.

dev: {
  env: require('./dev.env'),
  port: 8080,
  autoOpenBrowser: false,
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
  proxyTable: {
    '/api': {
      target: 'http://api.douban.com/v2',
      changeOrigin: true,
      pathRewrite: {
        '^/api': ''
      }
    }
  },
  // CSS Sourcemaps off by default because relative paths are "buggy"
  // with this option, according to the CSS-Loader README
  // (https://github.com/webpack/css-loader#sourcemaps)
  // In our experience, they generally work as expected,
  // just be aware of this issue when enabling this option.
  cssSourceMap: false
}
Copier après la connexion

Définissez la cible sur le nom de domaine auquel nous devons accéder.

3. Ensuite, définissez les attributs globaux dans main.js :

Vue.prototype.HOST = '/api'
Copier après la connexion

4 À ce stade, nous pouvons utiliser ce nom de domaine globalement, comme suit :

var url = this.HOST + '/movie/in_theaters'
  this.$http.get(url).then(res => {
   this.movieList = res.data.subjects;
  },res => {
   console.info('调用失败');
  });
Copier après la connexion

Recommandations associées :

Exemple détaillé du principe de la requête inter-domaine Ajax

Le problème de deux requêtes lorsque ajax cross-domain soumission dans la solution jquery

Comment comprendre Js cross-domain

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Java Apache Camel : Construire une architecture orientée services flexible et efficace Java Apache Camel : Construire une architecture orientée services flexible et efficace Feb 19, 2024 pm 04:12 PM

Apache Camel est un framework d'intégration basé sur Enterprise Service Bus (ESB) qui peut facilement intégrer des applications, des services et des sources de données disparates pour automatiser des processus métier complexes. ApacheCamel utilise une configuration basée sur les routes pour définir et gérer facilement les processus d'intégration. Les principales fonctionnalités d'ApacheCamel incluent : Flexibilité : ApacheCamel peut être facilement intégré à une variété d'applications, de services et de sources de données. Il prend en charge plusieurs protocoles, notamment HTTP, JMS, SOAP, FTP, etc. Efficacité : ApacheCamel est très efficace, il peut gérer un grand nombre de messages. Il utilise un mécanisme de messagerie asynchrone, qui améliore les performances. Extensible

Apprenez à diagnostiquer les problèmes courants de l'iPhone Apprenez à diagnostiquer les problèmes courants de l'iPhone Dec 03, 2023 am 08:15 AM

Connu pour ses performances puissantes et ses fonctionnalités polyvalentes, l’iPhone n’est pas à l’abri de contretemps ou de difficultés techniques occasionnelles, un trait commun aux appareils électroniques complexes. Rencontrer des problèmes avec votre iPhone peut être frustrant, mais aucune alarme n'est généralement nécessaire. Dans ce guide complet, nous visons à démystifier certains des défis les plus fréquemment rencontrés associés à l’utilisation de l’iPhone. Notre approche étape par étape est conçue pour vous aider à résoudre ces problèmes courants, en vous proposant des solutions pratiques et des conseils de dépannage pour remettre votre équipement en parfait état de fonctionnement. Que vous soyez confronté à un problème ou à un problème plus complexe, cet article peut vous aider à les résoudre efficacement. Conseils de dépannage généraux Avant de passer aux étapes de dépannage spécifiques, voici quelques conseils utiles

Guide de désinstallation de la bibliothèque NumPy pour éviter les conflits et les erreurs Guide de désinstallation de la bibliothèque NumPy pour éviter les conflits et les erreurs Jan 26, 2024 am 10:22 AM

La bibliothèque NumPy est l'une des bibliothèques importantes de Python pour le calcul scientifique et l'analyse de données. Cependant, nous devrons parfois désinstaller la bibliothèque NumPy, peut-être parce que nous devons mettre à niveau la version ou résoudre des conflits avec d'autres bibliothèques. Cet article expliquera aux lecteurs comment désinstaller correctement la bibliothèque NumPy pour éviter d'éventuels conflits et erreurs, et démontrera le processus de fonctionnement à travers des exemples de code spécifiques. Avant de commencer à désinstaller la bibliothèque NumPy, nous devons nous assurer que l'outil pip est installé, car pip est l'outil de gestion de packages pour Python.

Comment résoudre le problème selon lequel jQuery ne peut pas obtenir la valeur de l'élément de formulaire Comment résoudre le problème selon lequel jQuery ne peut pas obtenir la valeur de l'élément de formulaire Feb 19, 2024 pm 02:01 PM

Pour résoudre le problème selon lequel jQuery.val() ne peut pas être utilisé, des exemples de code spécifiques sont requis. Pour les développeurs front-end, l'utilisation de jQuery est l'une des opérations courantes. Parmi eux, utiliser la méthode .val() pour obtenir ou définir la valeur d'un élément de formulaire est une opération très courante. Cependant, dans certains cas précis, le problème de ne pas pouvoir utiliser la méthode .val() peut se poser. Cet article présentera quelques situations et solutions courantes, et fournira des exemples de code spécifiques. Description du problème Lorsque vous utilisez jQuery pour développer des pages frontales, vous rencontrerez parfois

Méthode de mise en œuvre et résumé de l'expérience de configuration flexible des règles de routage en PHP Méthode de mise en œuvre et résumé de l'expérience de configuration flexible des règles de routage en PHP Oct 15, 2023 pm 03:43 PM

Méthode de mise en œuvre et résumé de l'expérience de la configuration flexible des règles de routage en PHP Introduction : Dans le développement Web, les règles de routage sont une partie très importante, qui détermine la relation correspondante entre l'URL et les scripts PHP spécifiques. Dans la méthode de développement traditionnelle, nous configurons généralement diverses règles d'URL dans le fichier de routage, puis mappons l'URL sur le chemin de script correspondant. Cependant, à mesure que la complexité du projet augmente et que les exigences commerciales changent, il deviendra très lourd et peu flexible si chaque URL doit être configurée manuellement. Alors, comment implémenter en PHP

Utiliser les fonctions JavaScript pour implémenter la navigation et le routage des pages Web Utiliser les fonctions JavaScript pour implémenter la navigation et le routage des pages Web Nov 04, 2023 am 09:46 AM

Dans les applications Web modernes, la mise en œuvre de la navigation et du routage des pages Web est un élément très important. L'utilisation de fonctions JavaScript pour implémenter cette fonction peut rendre nos applications Web plus flexibles, évolutives et conviviales. Cet article explique comment utiliser les fonctions JavaScript pour implémenter la navigation et le routage des pages Web, et fournit des exemples de code spécifiques. Implémentation de la navigation Web Pour une application Web, la navigation Web est la partie la plus fréquemment utilisée par les utilisateurs. Lorsqu'un utilisateur clique sur la page

Comment résoudre le problème du menu Démarrer qui ne peut pas être utilisé après l'installation de Win11 Comment résoudre le problème du menu Démarrer qui ne peut pas être utilisé après l'installation de Win11 Jan 06, 2024 pm 05:14 PM

De nombreux utilisateurs ont essayé de mettre à jour le système Win11, mais ont constaté que le menu Démarrer ne peut pas être utilisé après la mise à jour. Cela peut être dû à un problème avec la dernière mise à jour. Nous pouvons attendre que Microsoft corrige ou désinstalle ces mises à jour pour résoudre le problème. problème. Examinons-le ensemble. Que faire si le menu Démarrer ne peut pas être utilisé après l'installation de Win11. Méthode 1 : 1. Ouvrez d'abord le panneau de configuration dans Win11. 2. Cliquez ensuite sur le bouton "Désinstaller un programme" sous le programme. 3. Entrez dans l'interface de désinstallation et recherchez « Afficher les mises à jour installées » dans le coin supérieur gauche. 4. Après avoir entré, vous pouvez afficher l'heure de mise à jour dans les informations de mise à jour et désinstaller toutes les mises à jour récentes. Méthode 2 : 1. De plus, nous pouvons également télécharger directement le système win11 sans mises à jour. 2. C'est un produit sans le plus

Quelles sont les questions de l'examen Rulong 8 Wine Master ? Quelles sont les questions de l'examen Rulong 8 Wine Master ? Feb 02, 2024 am 10:18 AM

Quelles sont les questions impliquées dans l’examen Yulong 8 Wine Master ? Quelle est la réponse correspondante ? Comment réussir l’examen rapidement ? De nombreuses questions doivent trouver une réponse dans les activités de l'examen Master of Wine, et nous pouvons nous référer aux réponses pour les résoudre. Ces questions impliquent toutes la connaissance du vin. Si vous avez besoin d’une référence, jetons un œil à l’analyse détaillée des réponses aux questions de l’examen Yakuza 8 Wine Master ! Explication détaillée des réponses aux questions de l'examen Rulong 8 Wine Master 1. Questions sur le « vin ». Il s'agit d'une liqueur distillée produite par une distillerie créée par la famille royale. Elle est brassée à partir du sucre de canne à sucre cultivé en grande quantité à Hawaï. Quel est le nom de ce vin ? Réponse : Rhum 2. Question sur le « vin ». La photo montre une boisson à base de ginseng sec et de vermouth sec. Il se caractérise par l'ajout d'olives et est connu sous le nom de « cockney ».

See all articles