У меня есть приложение, в котором я хотел бы распечатать местоположение пользователя, похожее на хлебную крошку. У меня есть компонент, который я добавляю на уровне приложения и ожидаю, что он обновится с текущим значением или объектом router.currentRoute
. Однако, похоже, он не обновляется, как ожидалось.
Я использую плагин Vue2 Composition api и изо всех сил стараюсь поддерживать его в приличном состоянии, которое значительно упростит переход на Vue3, когда я смогу. Это означает, что я бы не хотел использовать доступный объект context.$route
. Моя попытка в настоящее время импортирует маршрутизатор напрямую и обертывает объект currentRoute
в ref()
, но это, похоже, не работает.
Вот CodeSandbox с приложением. это показывает проблему. У меня есть домашняя страница и две дополнительные страницы. Текст, который гласит «Ваше текущее местоположение: Дом», должен измениться на имя других страниц при перемещении туда, но не изменится вообще.
<template>
<div>
<p>Your current location is: {{ location.name }}</p>
</div>
</template>
<script>
import { defineComponent, ref } from "@vue/composition-api";
import router from "@/router";
export default defineComponent({
name: "Page1",
setup() {
const location = ref(router.currentRoute);
return { location };
},
});
</script>
Пожалуйста, дайте мне знать, есть ли способ сделать это так, как я хотел бы. Если это невозможно, я просто перекусываю и использую context.$route
и займусь большим рефакторингом при переходе на Vue3.