Если вы используете Vuex
, вы можете использовать https://github.com/vuejs/vuex-router-sync
Просто инициализируйте его в вашем основном файле с помощью:
import VuexRouterSync from 'vuex-router-sync';
VuexRouterSync.sync(store, router);
Каждое изменение маршрута будет обновлять route
объект состояния в Vuex
. Затем вы можете создать getter
, чтобы использовать объект from
в состоянии маршрута или просто использовать state
(лучше использовать геттеры, но это другая история https://vuex.vuejs.org/en/ getters.html ), так что вкратце (внутри методов / значений компонентов):
this.$store.state.route.from.fullPath
Вы также можете просто поместить его в компонент
:
Back
Поэтому, когда вы используете код выше, ссылка на предыдущий путь будет генерироваться динамически.
Единственный способ, которым я получил вокруг этого находится следующее.
Для каждого представления, которое вы хотите остановить анимацию:
Установите кадр представления на уровень представления
Удалите все анимации из этого представления
Выполните прокрутку
Пересчитайте анимацию
Добавьте новую анимацию к виду
Я знаю, что это не то, что вы хотите слышать, но это не так плохо, как кажется. Хороший способ отслеживать просмотры, которые вы хотите остановить, - это присвоить им заранее определенный тег.
Чтобы удалить анимацию:
[myView.layer removeAllAnimations]
[myView.layer removeAnimationForKey: @ "theAnimationKey"]
Вы можете приостановить анимацию слоя, установив скорость анимации на ноль, см. Как приостановить анимацию дерева слоев .