Когда мы используем Nuxt и Vuex Store, будут ли значения совместно использоваться разными страницами?

Мы хотим поделиться значениями между разными страницами. Мы попробовали это следующими способами.

На той же странице State возвращал правильное значение, но на разных страницах State не устанавливалось. Мы делаем что-то не так? Или Vuex Store не может обмениваться значениями между страницами?

Мы заменили их упрощенными кодами для этого вопроса. Коды, вызывающие проблему, более сложны.

/store/index.js

const NOT_SET = null

export const state = () => ({
  value: NOT_SET,
})

export const mutations = {
  setValue(state, value) {
    state.value = value
  },
}

/pages/index.vue

<script>
import { mapState, mapMutations } from 'vuex'

export default {
  computed: {
    ...mapState(['value']),
  },
  mounted() {
    this.setValue(100)
  },
  methods: {
    ...mapMutations(['setValue']),
  },
}
</script>

/pages/_XXX/index.vue

<script>
import { mapState } from 'vuex'

export default {
  computed: {
    ...mapState(['value']),
  },
}
</script>

Я предполагаю, что вы не используете тег nuxt-link, а вместо этого обычный тег a, или вы напрямую посещаете страницу, pages/_XXX/index.vue не имеет кода для установки значения

Lawrence Cherone 12.05.2022 05:18

Ах! Да. Мы используем теги a для ссылок. Мы попробуем это.

Ganessa 12.05.2022 06:28

Хорошая догадка @LawrenceCherone! Теги atarget = "_blank") следует использовать только тогда, когда вы хотите открыть какую-либо внешнюю веб-страницу, в противном случае, если вы хотите перейти внутрь своего приложения Nuxt, вам следует использовать nuxt-link.

kissu 12.05.2022 06:51

Спасибо, @LawrenceCherone! С nuxt-link мы могли бы решить эту проблему.

Ganessa 12.05.2022 06:55
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы не можете использовать теги a, потому что каждый раз они будут стирать весь SPA. Если вы находитесь в контексте Vue, вам нужно использовать маршрутизатор Vue, поэтому nuxt-link является обязательным, если вы хотите сохранить приложение в течение всего времени.

Это также значительно повысит производительность всего веб-сайта.

Потому что в противном случае Vuex может полностью разделить состояние по всей странице. На самом деле он предназначен для того, чтобы поделиться им со всем приложением Vue.

Спасибо, @kissu. Мы понимаем разницу между тегами nuxt-link и a.

Ganessa 12.05.2022 06:58

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