Maison > interface Web > js tutoriel > Utiliser le routage dans vue pour actualiser la page

Utiliser le routage dans vue pour actualiser la page

亚连
Libérer: 2018-06-09 14:45:37
original
1607 Les gens l'ont consulté

Cet article présente principalement comment Vue implémente l'actualisation des pages via le routage. Maintenant, je le partage avec vous et le donne comme référence.

vue développe un projet de centre commercial WeChat

Les exigences sont les suivantes :

La page du panier passe à la page de détails. La page du panier contient plusieurs composants. passer à la caisse Sur la page de commande, lors du retour de la commande, la page du panier n'est pas actualisée. Étant donné que les événements sont transmis entre les composants du panier via le bus, les sauts de page (retours non physiques) ne peuvent pas déclencher la méthode beforeDestroy, et la méthode bus ne peut pas être détruite dans cette méthode

 beforeDestroy() {
  this.$root.Bus.$off('judge')
  this.$root.Bus.$off('refreshDetail')
  this.$root.Bus.$off('clearAll')
  this.$root.Bus.$off('upDataCart')
 },
Copier après la connexion

Frustration, détruisez-la via beforeRouteLeave

 beforeRouteLeave(to, from, next) {
  this.$root.Bus.$off('judge')
  this.$root.Bus.$off('refreshDetail')
  this.$root.Bus.$off('clearAll')
  this.$root.Bus.$off('upDataCart')

  next()
 },
Copier après la connexion

De même, la méthode de création du panier ne peut pas être déclenchée lorsque le retour physique est fait, et la méthode $on du bus ne peut pas être déclenchée

En dernière analyse, actualiser la page au retour de la physique peut résoudre ce problème

Idée 1

  beforeRouteEnter(to, from, next) {
   next(()=>{
     window.location.reload()
   })
  },
Copier après la connexion

Cette méthode semble réalisable en théorie, mais la page continuera à se rafraîchir,

Finalement, j'ai adopté l'idée 2, qui semble être une méthode très basse, mais cela résout le problème réel

 this.$router.replace({ name: 'cart' })// 处理返回刷新问题
   this.$router.push({
    path: '/order/order_sure',
    query: {
     sku: sku_str,
     cart: 'cart'
    }
   })
Copier après la connexion

Avant que la page ne saute, remplacez-la par la page actuelle via le routage. Accédez à nouveau à la page de commande et vous pourrez actualiser automatiquement à votre retour. Cette méthode n'est pas idéale. Si vous avez une meilleure méthode, partagez-la

Il existe une méthode spéciale pour résoudre ce problème. Sur la page du panier, ajoutez ce qui suit. Le code est juste

 // 销毁组件,返回刷新
 deactivated() {
  this.$destroy()
 },
Copier après la connexion

Le. ci-dessus est ce que j'ai compilé pour tout le monde. J'espère que cela sera utile à tout le monde à l'avenir.

Articles associés :

Fermetures PHP et fonctions anonymes (tutoriel détaillé)

À propos des événements personnalisés dans les composants Vue (tutoriel détaillé)

Comment utiliser le sélecteur de liens à trois niveaux dans le mini-programme WeChat

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal