#vue.js #vuex #nuxt.js
#vue.js #vuex #nuxt.js
Вопрос:
В проекте Nuxt у меня есть несколько анимаций на домашней странице, и я не хочу, чтобы они запускались второй раз, когда пользователь возвращается на домашнюю страницу, например, со страницы About
Итак, у меня есть переменная в хранилище -> index.js
export const state = () => ({
isVisited: false
})
и в index.vue, если значение isVisited равно false, запустите анимации и установите переменной значение true
if (this.$store.state.isVisited == false) {
this.initialAnimation();
this.$store.state.isVisited = true
}
Когда я захожу на страницу About, значение isVisited равно true, так что это работает, но когда я возвращаюсь обратно в / (домашняя страница), значение isVisited возвращается к false, и анимации запускаются снова. Хорошо, это логично, хранилище сбрасывает его самостоятельно при перезагрузке страницы в root, но у меня нет идей, как решить эту проблему по-другому.
Еще одна идея, которая у меня была, заключалась в том, чтобы определить, переходит ли пользователь со страницы / about, а затем отключить анимацию, но проблема в том, что пользователь может сначала перейти на страницу about, и он никогда не увидит начальную домашнюю анимацию, а мы этого не хотим.
Я новичок в хранении / vuex, и я еще не совсем понимаю это, поэтому извините, если вопрос глупый
Комментарии:
1. хранилище сбрасывает себя при перезагрузке на любой странице. Например. когда вы загружаете страницу с сервера, а не при навигации в приложении.
2. @Aldarund спасибо. Да, когда я перемещаюсь по App Store, все в порядке, только когда я возвращаюсь в «/», хранилище сбрасывается само. Вы понимаете, что я делаю не так?
3. Как вы возвращаетесь в / ? Вы должны использовать nuxt-link для перехода в / и тогда она не будет потеряна, пока пользователь не нажмет фактическую кнопку перезагрузки страницы
4. Если вы напрямую переходите к ‘/’ из браузера, то это запрос на стороне сервера. таким образом, ваше хранилище vuex не будет сохраняться.
5. @Aldarund да, nuxt-link — это решение. Я использовал router-link в чистом vue, но я почему-то полностью пропустил nuxt-link в Nuxt. Спасибо