Je vois dans cette pull request :
Ajouter un
router.reload()
Recharger avec le chemin actuel et appeler à nouveau le crochet de données
Mais lorsque j'essaye d'émettre la commande suivante à partir d'un composant Vue:
this.$router.reload()
J'obtiens cette erreur:
Uncaught TypeError: this.$router.reload is not a function
J'ai cherché dans la documentation , mais je n'ai rien trouvé de pertinent. Est-ce que vue / vue-router fournit des fonctionnalités comme celle-ci?
Les versions logicielles qui m'intéressent sont:
"vue": "^2.1.0",
"vue-router": "^2.0.3",
PS. Je sais que location.reload()
c'est l'une des alternatives, mais je recherche une option Vue native.
la source
$router.go()
accepte un paramètre, vous devez donc l'utiliser comme$router.go(0)
, ce qui signifie parcourir zéro page dans l'histoirewindow.location.reload(forceReload)
semble être obsolète, maiswindow.location.reload()
ça va.La solution la plus simple consiste à ajouter un attribut: key à:
En effet, Vue Router ne remarque aucun changement si le même composant est adressé. Avec la clé, toute modification du chemin déclenchera un rechargement du composant avec les nouvelles données.
la source
Documentation Vue-Router:
J'ai vérifié le repo vue-router sur GitHub et il semble qu'il n'y ait plus de
reload()
méthode. Mais dans le même fichier, il y a:currentRoute
objet.Source: vue-router / src / index.js
Docs: docs
Vous pouvez maintenant l'utiliser
this.$router.go(this.$router.currentRoute)
pour recharger l'itinéraire actuel.Exemple simple .
Version pour cette réponse:
la source
Safari
À utiliser
router.go(0)
si vous utilisez Typescript et qu'il demande des arguments pour la méthode go.la source
router.js
main.js
la source
C'est ma recharge. À cause de certains navigateurs très bizarres.
location.reload
impossible de recharger.la source
Résolvez la route vers une URL et naviguez dans la fenêtre avec Javascript.
let r = this.$router.resolve({ name: this.$route.name, // put your route information in params: this.$route.params, // put your route information in query: this.$route.query // put your route information in }); window.location.assign(r.href)
Cette méthode remplace l'URL et oblige la page à faire une requête complète (actualisation) plutôt que de s'appuyer sur Vue.router. $ router.go ne fonctionne pas de la même manière pour moi même si c'est théoriquement censé le faire.
la source
J'ai essayé ceci pour recharger la page actuelle.
la source
pourquoi n'utilisez-vous pas la méthode forceUpdate?
la source
Remarques:
#
doit avoir une certaine valeur après cela.setTimeout
,$nextTick
pour ne pas garder l'url propre.la source
Pour le rendu, vous pouvez utiliser dans le composant parent
la source