【问题标题】:Is it possible to do mini (soft) reload when some route is visited?访问某些路线时是否可以进行迷你(软)重新加载?
【发布时间】:2019-04-25 18:09:04
【问题描述】:

所以我有 if else 语句,它查看 URL 的末尾以确定要提供哪些答案。 (这是一个简单的测验小部件)。现在它按预期工作,但是当我从一个问题继续到下一个问题时,答案与上一个问题相同,直到我移动滑块选择答案。我希望能够在我访问下一个问题时自动更新答案。要么通过某种软重新加载,要么我实际上不知道这就是我在这里问的原因。

请大家帮忙。

【问题讨论】:

  • 你能分享更多细节吗?
  • 你在用vue-router吗?
  • @DelenaMalan 是的,我是
  • @dimas 只是说我很高兴分享任何帮助
  • 你提到的路由在 vue-router 中的路由配置是什么样的?目前还不清楚您的设置是什么,因此您可能需要在您的问题中添加一些代码。

标签: javascript if-statement vue.js vue-router reload


【解决方案1】:

一般来说,您需要根据您的 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' } })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    相关资源
    最近更新 更多