Проблема с кровотечением анимации ionic/vue router

Я создаю приложение ionic/vue, и у меня возникла проблема с анимацией при выходе из системы. Заикается анимация при переходе с главной страницы на страницу авторизации

думаю проблема в роутере

введите здесь описание изображения

 const routes: Array<RouteRecordRaw> = [
  {
    path: '/auth',
    name: 'auth',
    component: FeatureAuthByLoginAndPassword,
    meta: {
      middleware: [guest],
    },
  },
  {
    path: '/pinCode',
    name: 'pinCode',
    component: FeatureAuthByPinCode,
    meta: {
      middleware: [pincode],
    },
  },
  {
    path: '/',
    redirect: '/tabs/tab1',
  },
  {
    path: '/tabs/',
    component: TabsPage,
    meta: {
      middleware: [auth],
    },
    children: [
      {
        path: '',
        redirect: 'tab1',
      },
      {
        path: 'tab1',
        component: () => import('@/pages/ActiveClaimsList.vue'),
      },
      {
        path: 'tab2',
        component: () => import('@/pages/AllClaimList.vue'),
      },
      {
        path: 'tab3',
        component: () => import('@/pages/ClaimsHistory.vue'),
      },
    ],
  },

вот так выглядят мои маршруты

Я выхожу из TabsPage в PinCodePage

    const signOut = () => {
      logout();
      router.replace('/pinCode');
    };

«Ответ на главный вопрос жизни, вселенной и всего… 42». - Предоставьте достаточно исходного кода, чтобы мы могли увидеть, что вы сделали и где можно сделать улучшения. Иначе, на первый взгляд, как бы нет предыстории компонента (?), который вы подняли навстречу всему.

rozsazoltan 19.04.2023 10:01

@rozsazoltan мог бы проверить, пожалуйста

baimyrza beishenaliev 20.04.2023 11:11

Видно ли содержимое компонента FeatureAuthByPinCode, связанного с маршрутом pinCode, на прикрепленной фотографии? Если да, то вложение кода должно быть связано оттуда, так как именно там будет найдена основная причина проблемы.

rozsazoltan 20.04.2023 12:11

Попробуйте this.$router.push вместо this.$router.replace. Браузер может создавать помехи, так как использование функции «заменить» не открывает новую страницу, а удаляет текущую и заменяет ее новым запрошенным содержимым. Если ошибка сохраняется при использовании метода push, то причину проблемы следует искать не здесь. --- Или, если вам нужно использовать replace, вы можете отключить кеш браузера: inhibitCache: true в метаданных Route.

rozsazoltan 20.04.2023 12:23

Я нашел ошибку. Причина была в том, что фон моей страницы был прозрачным из-за этого, как будто зависла анимация. Я установил белый фон страницы, и все заработало нормально. @rozsazoltan большое спасибо!

baimyrza beishenaliev 20.04.2023 13:17
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
84
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ВАЖНО: В своем ответе я не знаком с исходным кодом, показанным на картинке, поэтому я могу только предположить, что предполагаемой целью является отображение PIN-кода (FeatureAuthByPinCode) на переднем плане, в то время как содержимое, видимое на заднем плане, является содержимое предыдущего маршрута (TabsPage), которое больше не должно отображаться.


Vue-маршрутизатор: replace()

  • не отправлять новый запрос
  • просто заменяет текущий контент следующим
  • запись об этом не делается в истории браузера
  • кнопка «назад» теряет свою функцию (это было бы целью, если бы вы использовали замену)
  • возможно, из-за кеширования остается видимым содержимое предыдущей страницы (это вина не страницы, а браузера)

Vue-маршрутизатор: push()

  • новая запись добавлена ​​в историю браузера
  • точно не мешает кешу
  • можно использовать кнопку назад

Vue-Router: как отключить кеш текущей страницы в браузере?

Используйте inhibitCache: true в мета.

Это может быть полезно в тех случаях, когда содержимое страницы необходимо часто обновлять, не полагаясь на кеш браузера. (возможно, с использованием replace())

const routes = [
  // ...
  {
    path: '/about',
    component: ExampleAbout,
    meta: {
      // disable cache on about route
      inhibitCache: true
    }
  },
  // ...
]

Другие вопросы по теме