Можно ли выполнить мини (мягкую) перезагрузку при посещении какого-либо маршрута? - PullRequest
1 голос
/ 25 апреля 2019

Итак, у меня есть оператор if else, который просматривает конец URL, чтобы определить, какие ответы предоставить.(Это простой виджет викторины).Прямо сейчас это работает, как и ожидалось, но когда я перехожу от вопроса к следующему вопросу, ответ остается таким же, как и на последний вопрос, пока я не перемещаю ползунок, чтобы выбрать ответ.Я хочу, чтобы при следующем посещении вопроса ответы автоматически обновлялись.Либо делая какую-то мягкую перезагрузку, либо я на самом деле не знаю, поэтому я прошу здесь.

TY за любую помощь.

1 Ответ

0 голосов
/ 27 апреля 2019

В общем случае вам необходимо построить логику приложения на основе вашего URL.

В вашем роутере:

const router = new VueRouter({
  routes: [
    { path: '/quiz/:id', component: Quiz }
  ]
})

В вашем компоненте Викторина вам нужно определить вычисляемое свойство:

data: function() {
    return {
        questions: ['First q', 'Second q'],
        answers: [....]
    }
},
computed: {
    currentQuestion() {
        const qID = parseInt(this.$route.params.id, 10);
        if (qID >= 0) {
            return this.questions[qId];
        }
        return '';
    },
    currentAnswers() {
        const qID = parseInt(this.$route.params.id, 10);
        if (qID >= 0) {
            return this.answers[qId];
        }
        return '';
    }
}

А переход к новому вопросу может быть как router.push({ name: 'quiz', params: { id: '123' } })

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...