基于vue下,写一个前端页面 ,需要点下一步才能进行下一题的解答
时间: 2023-06-27 10:07:14 浏览: 43
可以使用Vue Router实现这个功能。首先,在Vue项目中安装Vue Router:
```bash
npm install-router
```
然后,在`main.js`引入Vue Router并配置路由:
```javascript
import Vue from 'vue'
import VueRouter from 'vue-routerimport App from './App.vue'
Vue.use(VueRouter)
const routes = [
{ path: '/', component: Home },
{ path: '/question/:id', component: },
{ path: '/result', component: Result }
]
const router = new VueRouter({
routes
})
new Vue({
router,
render: h => h(App),
}).$mount('#app')
```
在上面的代码中,我们定义了三个路由:`/`表示首页,`/question/:id`表示问题页面,`:id`是一个动态参数,用来表示问题的编号,`/result`表示结果页面。然后,我们创建了一个Vue Router实例,并将路由配置传递给它。最后,我们在Vue实例中注册Vue Router,并将它挂载到`#app`元素上。
接下来,我们在问题页面中添加一个“下一步”按钮,并在点击按钮时跳转到下一个问题页面:
```html
<template>
<div>
<h1>Question {{ id }}</h1>
<p>{{ question }}</p>
<button @click="nextQuestion">Next</button>
</div>
</template>
<script>
export default {
props: ['id'],
data() {
return {
question: 'What is your favorite color?'
}
},
methods: {
nextQuestion() {
const nextId = parseInt(this.id) + 1
this.$router.push(`/question/${nextId}`)
}
}
}
</script>
```
在上面的代码中,我们使用了Vue Router提供的`$router.push`方法来跳转到下一个问题页面。我们将问题编号加1,并使用`$router.push`方法将路由推送到下一个问题页面。
最后,我们需要在结果页面中显示最终结果。我们可以在结果页面的`created`钩子中获取问题答案,并计算最终结果:
```html
<template>
<div>
<h1>Result</h1>
<p>Your favorite color is {{ result }}.</p>
</div>
</template>
<script>
export default {
created() {
const answers = this.$route.params.answers.split(',')
const counts = { red: 0, green: 0, blue: 0 }
answers.forEach(answer => {
counts[answer]++
})
this.result = Object.keys(counts).reduce((a, b) => counts[a] > counts[b] ? a : b)
},
data() {
return {
result: ''
}
}
}
</script>
```
在上面的代码中,我们使用了`$route.params.answers`来获取问题答案,并将答案存储在一个数组中。然后,我们使用一个计数器对象来计算每个颜色出现的次数。最后,我们使用`Object.keys`和`reduce`方法来找到出现次数最多的颜色,并将结果存储在`result`中。