当前位置:首页 > VUE

vue实现填空题

2026-01-20 22:39:24VUE

Vue实现填空题的基本思路

填空题的实现通常需要结合Vue的数据绑定、事件处理和动态渲染特性。以下是一个基于Vue 2或Vue 3的实现方案。

核心代码实现

模板部分(Template)

<template>
  <div class="fill-blank-container">
    <div v-for="(blank, index) in blanks" :key="index" class="blank-item">
      <span>{{ blank.textBefore }}</span>
      <input 
        v-model="blank.userAnswer" 
        @input="checkAnswer(index)"
        :class="{ correct: blank.isCorrect, incorrect: !blank.isCorrect && blank.userAnswer }"
      />
      <span>{{ blank.textAfter }}</span>
    </div>
    <div v-if="allCorrect" class="feedback">全部正确!</div>
  </div>
</template>

脚本部分(Script)

<script>
export default {
  data() {
    return {
      blanks: [
        {
          textBefore: "Vue是一个",
          textAfter: "框架",
          correctAnswer: "渐进式",
          userAnswer: "",
          isCorrect: false
        },
        {
          textBefore: "Vue的核心特性包括",
          textAfter: "和组件化",
          correctAnswer: "响应式",
          userAnswer: "",
          isCorrect: false
        }
      ],
      allCorrect: false
    };
  },
  methods: {
    checkAnswer(index) {
      const blank = this.blanks[index];
      blank.isCorrect = blank.userAnswer === blank.correctAnswer;
      this.allCorrect = this.blanks.every(b => b.isCorrect);
    }
  }
};
</script>

样式设计建议

<style scoped>
.fill-blank-container {
  font-size: 16px;
  line-height: 2;
}

.blank-item {
  margin-bottom: 10px;
}

input {
  border: 1px solid #ddd;
  padding: 4px 8px;
  border-radius: 4px;
}

input.correct {
  border-color: green;
  background-color: #e8f5e9;
}

input.incorrect {
  border-color: red;
  background-color: #ffebee;
}

.feedback {
  color: green;
  font-weight: bold;
  margin-top: 20px;
}
</style>

功能扩展建议

动态生成填空题 可以通过API获取题目数据,实现动态渲染:

async created() {
  try {
    const response = await fetch('/api/fill-blank-questions');
    this.blanks = await response.json();
  } catch (error) {
    console.error('获取题目失败:', error);
  }
}

添加提交按钮

<button @click="submitAll" :disabled="!allFilled">提交答案</button>

添加计分功能

computed: {
  score() {
    return this.blanks.filter(b => b.isCorrect).length;
  },
  total() {
    return this.blanks.length;
  }
}

注意事项

  1. 对于需要模糊匹配的答案(如大小写不敏感),可以在检查时统一转为小写:

    blank.isCorrect = blank.userAnswer.toLowerCase() === blank.correctAnswer.toLowerCase();
  2. 考虑添加输入提示功能,当用户输入错误时显示正确答案提示。

  3. 对于移动端适配,可以增加输入框的点击区域大小。

  4. 如果需要保存用户进度,可以使用localStorage存储用户答案。

    vue实现填空题

标签: 填空题vue
分享给朋友:

相关文章

vue懒加载实现难吗

vue懒加载实现难吗

vue懒加载的实现难度 Vue懒加载的实现并不复杂,核心逻辑是通过动态导入(Dynamic Imports)和路由配置或组件异步加载完成。以下是具体实现方法: 路由懒加载实现 在Vue Router…

vue实现倒计时抢券

vue实现倒计时抢券

Vue 实现倒计时抢券功能 核心逻辑 倒计时抢券功能需要结合时间计算、状态管理和界面交互。通过 Vue 的响应式特性和生命周期钩子,可以高效实现这一需求。 实现步骤 1. 数据准备 在 Vue 组件…

vue实现dag

vue实现dag

Vue实现DAG(有向无环图) 在Vue中实现DAG(Directed Acyclic Graph,有向无环图)通常涉及数据结构的建模、可视化渲染以及交互逻辑处理。以下是关键实现步骤和示例代码: 数…

vue网页实现

vue网页实现

Vue 网页实现指南 环境准备 安装 Node.js 和 npm/yarn,确保环境配置正确。使用 Vue CLI 或 Vite 创建项目框架,快速搭建开发环境。 npm install -g @v…

vue实现CRUD

vue实现CRUD

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

vue实现框选

vue实现框选

Vue 实现框选功能 在 Vue 中实现框选功能通常需要监听鼠标事件,计算选区范围,并根据选区范围高亮或选中元素。以下是实现框选功能的关键步骤。 监听鼠标事件 在 Vue 模板中,为容器元素绑定鼠标…