Я бы хотел, чтобы мой "SPA" обновлялся, когда я нажимаю ссылку, вместо его поведения по умолчанию, когда вы видите минимальную замену компонентов.
Похоже, я убиваю лучшую часть SPA, но я чувствую, что ссылки без обновления вызывают больше проблем, чем преимуществ - худшее, я полагаю, это то, что страница явно не отвечает, если вы нажимаете ссылку на текущую страницу. , что, на мой взгляд, довольно сбивает с толку:
<!-- You click, then of course nothing happens when you're at HelloWorld -->
<router-link :to = "{name: 'HelloWorld'}">link</router-link>
@JulianPaoloDayag Спасибо, это может иметь смысл, но, как я описал в своем вопросе, самое большое разочарование заключается в том, что ничего не происходит, когда вы нажимаете ссылку на текущую страницу - поведение заставляет (по крайней мере) меня думать, что ссылка не отвечает потому что ссылка / сайт не работает.
вы можете дать нам образец кода, который мы можем изучить?
@JulianPaoloDayag Я добавил образец.
Можете ли вы также указать свои маршруты?
@JulianPaoloDayag { path: '/', name: 'HelloWorld', component: HelloWorld }
, который используется по умолчанию для vue-cli 2.x.
Ждать. Что вы пытаетесь сделать, это когда пользователь нажимает ссылку на текущую страницу, вы ожидаете, что страница будет повторно отображена?
@JulianPaoloDayag Именно так. Разве не так работает большинство веб-сайтов?
Если вы в настоящее время находитесь на целевой странице, vue-router не будет повторно отображать текущую страницу, поскольку вы уже находитесь на целевой странице. По какой причине вы хотите обновить страницу?
Фактически вы можете использовать ловушку «mount ()» для сброса любых переменных, которые у вас есть.
Позвольте нам продолжить обсуждение в чате.
Хорошо, я не знал, что нормальный тег <a>
работает так, как я ожидал если используется режим истории, поэтому в итоге я сделал следующее:
<a :href = "$router.resolve({name: 'HelloWorld'}).href">link</a>
а может просто:
<a href = "/">link</a>
Спасибо. У меня была ссылка на маршрутизатор с: to object, но я хотел перезагрузить страницу в этом конкретном случае, поэтому я сделал $router.resolve(to).href
.
Спасибо, акай, пользуюсь вашей помощью в том случае, если я хочу использовать тот же компонент. У меня есть список категорий, и когда я нажимаю на определенную страницу категории, ее необходимо перезагрузить.
<a :href = "$router.resolve({name:'category', params: {id: category.id}}).href">
{{category.name}}<span>
({{category.posts.length}})
</span>
</a>
Да, вы убиваете саму цель СПА. Spa-маршрутизатор, такой как vue-router, предназначен для навигации, которая не требует фактического обновления страницы. Если ваше приложение не работает должным образом после перехода с одной страницы на другую, значит, с вашей реализацией что-то не так, и нужно исправить.