В этом запросе на перенос я вижу :
Добавить
router.reload()
Перезагрузить с текущим путем и снова вызвать привязку данных
Но когда я пытаюсь выполнить следующую команду из компонента Vue:
this.$router.reload()
Я получаю такую ошибку:
Uncaught TypeError: this.$router.reload is not a function
Я искал в документации , но не нашел ничего подходящего. Есть ли у поставщика vue / vue-router такие функции?
Меня интересуют следующие версии программного обеспечения:
"vue": "^2.1.0",
"vue-router": "^2.0.3",
PS. Я знаю, что location.reload()
это одна из альтернатив, но я ищу нативный вариант Vue.
источник
$router.go()
принимает один параметр, поэтому вы должны использовать его как$router.go(0)
, что означает переход по нулевым страницам назад в историиwindow.location.reload(forceReload)
кажется устаревшим, ноwindow.location.reload()
это нормально.Самое простое решение - добавить атрибут: key к:
Это связано с тем, что Vue Router не замечает никаких изменений, если адресуется один и тот же компонент. С ключом любое изменение пути вызовет перезагрузку компонента с новыми данными.
источник
Документы Vue-Router:
Я проверил репозиторий vue-router на GitHub, и похоже, что
reload()
метода больше нет. Но в том же файле есть:currentRoute
object.Источник: vue-router / src / index.js
Документы: docs
Теперь вы можете использовать
this.$router.go(this.$router.currentRoute)
для перезагрузки текущего маршрута.Простой пример .
Версия для этого ответа:
источник
Safari
Используйте,
router.go(0)
если вы используете Typescript, и он запрашивает аргументы для метода go.источник
router.js
main.js
источник
Это моя перезагрузка. Из-за какого-то браузера очень странно.
location.reload
не могу перезагрузить.источник
Разрешите маршрут к URL-адресу и перемещайтесь по окну с помощью 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)
Этот метод заменяет URL-адрес и заставляет страницу выполнять полный запрос (обновление), а не полагаться на Vue.router. $ router.go у меня не работает, хотя теоретически это должно быть.
источник
Я пробовал это для перезагрузки текущей страницы.
источник
почему вы не используете метод forceUpdate?
источник
Примечания:
#
должно быть что-то ценное.setTimeout
,$nextTick
чтобы URL не был чистым.источник
Для повторной визуализации вы можете использовать в родительском компоненте
источник