当前位置:首页 > VUE

vue实现填空题

2026-02-21 14:18:28VUE

Vue 实现填空题的方法

在 Vue 中实现填空题功能,可以通过动态绑定输入框、条件渲染和状态管理来实现。以下是几种常见的实现方式:

使用 v-model 绑定输入框

通过 v-model 双向绑定输入框的值,实时更新用户输入的内容。这种方式适用于简单的填空题场景。

<template>
  <div>
    <p>请填空:{{ question }}</p>
    <input v-model="userAnswer" placeholder="请输入答案" />
    <button @click="checkAnswer">提交</button>
    <p v-if="showResult">{{ result }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      question: "Vue 是一个 __ 框架",
      correctAnswer: "前端",
      userAnswer: "",
      showResult: false,
      result: ""
    };
  },
  methods: {
    checkAnswer() {
      this.showResult = true;
      this.result = this.userAnswer === this.correctAnswer ? "回答正确!" : "回答错误!";
    }
  }
};
</script>

动态生成填空题

如果需要动态生成多个填空题,可以使用 v-for 循环渲染输入框,并将用户输入存储在数组中。

<template>
  <div>
    <div v-for="(item, index) in questions" :key="index">
      <p>{{ item.question }}</p>
      <input v-model="userAnswers[index]" placeholder="请输入答案" />
    </div>
    <button @click="checkAllAnswers">提交</button>
    <p v-if="showResult">{{ result }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      questions: [
        { question: "Vue 是一个 __ 框架", answer: "前端" },
        { question: "Vue 的核心是 __", answer: "响应式" }
      ],
      userAnswers: [],
      showResult: false,
      result: ""
    };
  },
  methods: {
    checkAllAnswers() {
      const allCorrect = this.questions.every(
        (item, index) => this.userAnswers[index] === item.answer
      );
      this.showResult = true;
      this.result = allCorrect ? "全部回答正确!" : "有错误答案!";
    }
  }
};
</script>

填空题与文本混合

如果填空题需要嵌入到文本中,可以通过字符串替换或动态渲染的方式实现。

<template>
  <div>
    <p>请填空:{{ questionWithBlank }}</p>
    <input v-model="userAnswer" placeholder="请输入答案" />
    <button @click="checkAnswer">提交</button>
    <p v-if="showResult">{{ result }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      question: "Vue 是一个 {blank} 框架",
      correctAnswer: "前端",
      userAnswer: "",
      showResult: false,
      result: ""
    };
  },
  computed: {
    questionWithBlank() {
      return this.question.replace("{blank}", "_____");
    }
  },
  methods: {
    checkAnswer() {
      this.showResult = true;
      this.result = this.userAnswer === this.correctAnswer ? "回答正确!" : "回答错误!";
    }
  }
};
</script>

使用动态组件实现复杂填空题

对于更复杂的填空题场景(如多个填空或拖拽填空),可以使用动态组件或第三方库(如 vuedraggable)来实现。

vue实现填空题

<template>
  <div>
    <p>请将以下单词填入正确的位置:</p>
    <div v-for="(item, index) in blanks" :key="index">
      <p>{{ item.text }}</p>
      <input v-model="item.userAnswer" placeholder="请输入答案" />
    </div>
    <button @click="checkAnswers">提交</button>
    <p v-if="showResult">{{ result }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      blanks: [
        { text: "Vue 是一个 __ 框架", answer: "前端", userAnswer: "" },
        { text: "Vue 的核心是 __", answer: "响应式", userAnswer: "" }
      ],
      showResult: false,
      result: ""
    };
  },
  methods: {
    checkAnswers() {
      const allCorrect = this.blanks.every(
        item => item.userAnswer === item.answer
      );
      this.showResult = true;
      this.result = allCorrect ? "全部回答正确!" : "有错误答案!";
    }
  }
};
</script>

以上方法可以根据实际需求灵活调整,适用于从简单到复杂的填空题场景。

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

相关文章

vue实现语音

vue实现语音

Vue 实现语音功能的方法 使用 Web Speech API Vue 可以结合 Web Speech API 实现语音识别和合成功能。Web Speech API 包含 SpeechRecognit…

vue能实现

vue能实现

Vue.js 是一个流行的前端框架,能够实现多种功能。以下是 Vue 能够实现的主要功能和特性: 响应式数据绑定 Vue 的核心特性之一是响应式数据绑定。通过数据驱动视图,当数据发生变化时,视图会自…

vue实现编辑

vue实现编辑

Vue 实现编辑功能 在 Vue 中实现编辑功能通常涉及表单绑定、状态管理和事件处理。以下是一个常见的实现方法: 双向数据绑定 使用 v-model 指令实现表单元素与数据的双向绑定: <i…

vue diff实现

vue diff实现

Vue Diff 算法实现原理 Vue 的虚拟 DOM Diff 算法(即 patch 过程)是其高效渲染的核心,主要通过对比新旧虚拟节点的差异,最小化 DOM 操作。以下是关键实现要点: 同层级比…

vue博客实现

vue博客实现

Vue 博客实现步骤 项目初始化与基础配置 使用 Vue CLI 或 Vite 创建项目,安装基础依赖如 vue-router 和状态管理库(如 pinia)。配置路由文件实现页面跳转逻辑,例如博客首…

使用vue实现搜索

使用vue实现搜索

使用 Vue 实现搜索功能 基础搜索实现 在 Vue 中实现搜索功能通常涉及数据绑定、事件监听和列表过滤。以下是一个简单的实现方式: <template> <div>…