当前位置:首页 > VUE

vue实现填空

2026-03-27 12:04:50VUE

Vue 实现填空题功能

在 Vue 中实现填空题功能可以通过数据绑定和动态渲染来实现。以下是一种常见的实现方式:

数据准备

定义题目数据,包含题干和填空位置:

data() {
  return {
    questions: [
      {
        text: 'Vue 是一个 __1__ 框架,由 __2__ 开发',
        blanks: ['', '']
      }
    ]
  }
}

模板渲染

使用 v-for 循环渲染题目,并用 v-model 绑定填空输入:

<div v-for="(question, qIndex) in questions" :key="qIndex">
  <p v-html="renderQuestion(question)"></p>
  <div v-for="(blank, bIndex) in question.blanks" :key="bIndex">
    <input v-model="question.blanks[bIndex]" placeholder="请输入答案">
  </div>
</div>

处理方法

添加方法处理题干渲染和答案验证:

methods: {
  renderQuestion(question) {
    let parts = question.text.split(/__\d+__/);
    let result = '';
    parts.forEach((part, index) => {
      result += part;
      if (index < parts.length - 1) {
        result += `<span class="blank">${question.blanks[index] || '______'}</span>`;
      }
    });
    return result;
  },

  checkAnswers() {
    const correctAnswers = ['JavaScript', '尤雨溪'];
    this.questions[0].blanks.forEach((answer, index) => {
      if (answer === correctAnswers[index]) {
        console.log(`第 ${index + 1} 空正确`);
      } else {
        console.log(`第 ${index + 1} 空错误`);
      }
    });
  }
}

样式增强

添加 CSS 美化填空题样式:

.blank {
  display: inline-block;
  min-width: 80px;
  border-bottom: 1px solid #333;
  margin: 0 5px;
  text-align: center;
}

input {
  margin: 10px 0;
  padding: 5px;
  border: 1px solid #ddd;
  border-radius: 4px;
}

动态填空题

如果需要更动态的填空题生成,可以使用正则表达式匹配:

vue实现填空

generateBlanks(text) {
  const blankRegex = /__\d+__/g;
  const blankCount = (text.match(blankRegex) || []).length;
  return Array(blankCount).fill('');
}

这种实现方式允许灵活地定义填空题,支持多个填空位置,并能方便地验证用户输入。可以根据实际需求调整样式和交互逻辑。

标签: vue
分享给朋友:

相关文章

vue实现登录验证

vue实现登录验证

Vue 实现登录验证的方法 使用表单验证库 VeeValidate 安装 VeeValidate 库,可以快速实现表单验证功能。VeeValidate 提供了丰富的验证规则和错误提示功能。 npm…

vue实现计算

vue实现计算

Vue 实现计算的方法 在 Vue 中实现计算功能可以通过多种方式完成,主要包括计算属性(computed)、方法(methods)和侦听器(watch)。以下是具体的实现方法: 计算属性(Comp…

vue实现popup

vue实现popup

Vue 实现 Popup 弹窗 使用 Vue 原生组件 创建一个基本的 Vue 组件作为弹窗,通过 v-if 或 v-show 控制显示隐藏。 <template> <div&…

vue实现flvvideo

vue实现flvvideo

vue-flv-player 实现 FLV 视频播放 安装依赖包 npm install flv.js vue-flv-player 基础组件引入 <template> <v…

vue 实现路径

vue 实现路径

在 Vue 中实现路径管理通常涉及路由配置、动态路由、嵌套路由等场景,以下是具体实现方法: 基础路由配置 安装 Vue Router 并创建路由实例: npm install vue-router…

vue实现word在线

vue实现word在线

Vue 实现 Word 在线编辑与预览 方案一:使用 docx.js 与前端解析 安装依赖库 docx 和 file-saver,用于生成和下载 Word 文件: npm install docx…