当前位置:首页 > VUE

vue答题功能实现

2026-02-18 08:45:39VUE

Vue 答题功能实现方案

数据结构和状态管理

使用 Vue 的 dataref(Composition API)管理题目和用户答案:

data() {
  return {
    questions: [
      {
        id: 1,
        text: "问题1",
        options: ["A", "B", "C"],
        answer: "A"
      }
    ],
    currentIndex: 0,
    userAnswers: {}
  }
}

题目渲染组件

通过 v-for 动态渲染题目和选项:

vue答题功能实现

<template>
  <div v-for="(q, index) in questions" :key="q.id">
    <h3>{{ q.text }}</h3>
    <div v-for="option in q.options" :key="option">
      <input 
        type="radio" 
        :name="'q'+index" 
        :value="option"
        v-model="userAnswers[index]">
      {{ option }}
    </div>
  </div>
</template>

答题逻辑处理

计算得分和验证答案:

methods: {
  checkAnswers() {
    let score = 0
    this.questions.forEach((q, index) => {
      if (this.userAnswers[index] === q.answer) {
        score++
      }
    })
    return score
  }
}

进度控制

添加题目导航按钮:

vue答题功能实现

<button @click="currentIndex--" :disabled="currentIndex === 0">上一题</button>
<button @click="currentIndex++" :disabled="currentIndex >= questions.length-1">下一题</button>

结果展示

使用计算属性显示结果:

computed: {
  result() {
    const correct = this.checkAnswers()
    return `正确 ${correct}/${this.questions.length}`
  }
}

进阶功能建议

  • 使用 Vuex/Pinia 管理全局状态
  • 添加计时器功能
  • 实现题目分类和难度分级
  • 加入动画过渡效果
  • 支持多种题型(多选题、判断题等)

样式优化

建议使用 CSS 模块化或 SCSS:

.question {
  margin-bottom: 20px;
}
.options {
  display: flex;
  flex-direction: column;
}

以上方案可根据实际需求进行调整,核心在于响应式数据绑定和组件化设计。

标签: 功能vue
分享给朋友:

相关文章

vue实现分类

vue实现分类

Vue实现分类功能的方法 使用v-for和计算属性 通过计算属性对数据进行分类处理,结合v-for渲染分类后的列表。示例代码: <template> <div>…

vue SSG实现

vue SSG实现

Vue SSG 实现方法 Vue 的静态站点生成(SSG)可以通过多种工具和框架实现,以下是几种常见的方法: 使用 VuePress VuePress 是一个基于 Vue 的静态站点生成器,适合文档…

vue实现表白

vue实现表白

Vue 实现表白页面 使用 Vue 可以快速创建一个动态、交互式的表白页面。以下是一个简单的实现方案: 基础结构 创建一个 Vue 项目或单文件组件,包含以下核心部分: <template&…

vue拖拽实现

vue拖拽实现

Vue 拖拽实现方法 使用 HTML5 原生拖拽 API HTML5 提供了原生拖拽 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 drop 事…

vue 实现报价

vue 实现报价

Vue 实现报价功能 在 Vue 中实现报价功能通常涉及前端表单交互、数据计算和与后端 API 的通信。以下是实现报价功能的几种常见方法: 表单设计与数据绑定 使用 Vue 的 v-model 指…

vue实现CRUD

vue实现CRUD

Vue 实现 CRUD 操作 Vue 提供了响应式数据绑定和组件化开发能力,结合后端 API 可以轻松实现 CRUD(增删改查)功能。以下是基于 Vue 3 和 Axios 的完整实现方案。 安装依…