vue2 + vue-router + vuex + iview 入门项目
简单的vue2 + vue-router + vuex + iview 入门项目,一个移动端平台的简易考试系统。灵感来源于近期工作项目中开发的一套考试平台系统。欢迎大家来issues指出错误共同进步。
项目运行
# 克隆到本地
git clone https://github.com/webproblem/vue-demo.git
# 进入项目
cd vue-demo
# 安装依赖
npm install,可以使用cnpm代替npm
#运行项目
npm run dev
项目文件说明
主要是src文件夹。
- data: 模拟的数据
- page: 存放的vue组件页面
- router: vue路由文件
- store: vuex状态管理文件
- utils: 公共的工具函数
功能描述及实现
可以通过设置不同的路由参数来切换不同的考试试题
<div class="button-group"><span><router-link :to="{name: 'exam1', query: {id: 1}}">考试试题一</router-link></span><span><router-link :to="{name: 'exam1', query: {id: 2}}">考试试题二</router-link></span>
</div>
在src/data目录下的模拟数据中,配置好考试试题和考试时长等信息。
/*** @param {Number} examTime 考试时长* @param {String} title 题目内容* @param {Array} options 答案选项* @param {Number} answer 正确答案索引,从0开始* @param {Number} score 题目对应的分数* @param {String} examId 题目唯一ID
*/export const examTime = 30;export const examList = [{title: "《春晓》这首诗是出自哪位诗人?",options: ["李白", "杜甫", "王维", "苏轼"],answer: 1,score: 5,examId: "0"}
]
然后运行项目,进入首页就可以选择试卷答题了!!!
在考试时间结束的时候,系统会自动提交答题试卷,或者在答完所有题的时候,手动点击提交试卷,系统会根据答题情况给出相应的考试结果。(还有一些细节没有考虑进去,后期可以添加查看答错题目的功能等)
<template><div class="exam-result"><div class="scores-container"><div class=""><header class="scores">{{getScore}}分</header><label class="result-tips">{{resultTips}}</label></div></div></div>
</template><script>
import {mapState, mapMutations} from 'vuex'export default {data () {return {//答错的题errorExam: [],//答对的题sureExam: [],//总分totalScore: 0,//得分getScore: 0,resultTips: "",examList: []}},computed:mapState(['saveAnswer','useTime','examId']),mounted () {const vm = this;vm.examList = vm.$store.state.examList[this.examId - 1] || [];vm.getSureAnswer();},methods: {getSureAnswer() {var vm = this;vm.examList.forEach(function(item, index){vm.totalScore += parseInt(item.score);if((item.answer + 1) == vm.saveAnswer[index]){vm.sureExam.push(item);vm.getScore += parseInt(item.score);}else{vm.errorExam.push(item);}})vm.setResultTips();console.log(this.useTime)console.log("答对题:" + vm.sureExam.length);},setResultTips() {const scores = [100 ,90, 70, 60, 40, 20],tips = ['哇,你太优秀了,厉害了!!!','智商只差一步就爆表了,继续加油!','表现很好,good!','嗯,不错,还有很大的进步空间!','还需要继续加油哦!!!','What are you弄啥嘞!'];if(this.getScore <= scores[5]) {this.resultTips = tips[5];return;}if(this.getScore <= scores[4]) {this.resultTips = tips[4];return;}if(this.getScore <= scores[3]) {this.resultTips = tips[3];return;}if(this.getScore <= scores[2]) {this.resultTips = tips[2];return;}if(this.getScore <= scores[1]) {this.resultTips = tips[1];return;}if(this.getScore <= scores[0]) {this.resultTips = tips[0];return;}}}
}
</script>
本教程是基于已经有一定vue基础之上的,如果你还不了解什么是vue建议先去学习一下。友情链接:
vue中文官网
vuex文档
vue-router文档
欢迎大家star和issues。
源码地址:
https://github.com/webproblem/vue-demo
vue2 + vue-router + vuex + iview 入门项目相关推荐
- Vue+Vue Router+Vuex页面演示
Vue+Vue Router+Vuex简单页面演示 1.目录结构(使用vue-cli创建) 2.编写代码 src/router/index.js import Vue from "vue&q ...
- Vue 2.0 + Vue Router + Vuex 后台管理系统的骨架
https://github.com/helloyoucan/ba 用 Vue.js 2.x 与相配套的 Vue Router.Vuex 搭建了一个最基本的后台管理系统的骨架. 当然先要安装 node ...
- Vue.js + Vuex + TypeScript 实战项目开发与项目优化
技术栈: Vue.js + Vuex + TypeScript Todo List: 使用Vue CLI初始化项目 调整初始目录结构 删除初始化的默认文件(对于我们项目是多余的组件components ...
- vue router 参数_Vue.js项目开发技术解析
Vue.js项目开发技术解析 一.Vue.js实例 在一个Vue.js工程中,用于显示内容最基层的实例称之为根实例.通过该实例可以进行页面或组件的更新和显示.对于项目本身而言,无论是什么样的页面,都要 ...
- Vue Router 4 快速入门
现在我们安装 vue-router 版本的时候,默认还是安装的 3.x 版本的,由于 vue3 的更新发生很大的变化,所以为了兼容处理,vue-router 也将发布最新版 4.x 版本了. 安装注册 ...
- vue3.0+vuex+typescript 入门项目描述
先写仓库地址:https://gitee.com/orderkk/vuex-vue3.0-ts.git 项目目录介绍: 目录介绍: assets: 存放静态文件资源 components: 存放组件文 ...
- Vue3中的Vue Router初探
对于大多数单页应用程序而言,管理路由是一项必不可少的功能.随着新版本的Vue Router处于Alpha阶段,我们已经可以开始查看下一个版本的Vue中它是如何工作的. Vue3中的许多更改都会稍微改变 ...
- VueJS 官方路由之 Vue Router
文章目录 参考 描述 Vue Router 获取 npm yarn 依赖问题 使用 router-link router-view 配置路由插件 基本结构 子组件 导入需要进行路由匹配的组件 定义路由 ...
- vue(vue-cli+vue-router)+babel+webpack项目搭建入门(三)
vue(vue-cli+vue-router)+babel+webpack项目搭建入门<三> 本系列文章将介绍基于vue+webpack的前端项目的构建过程.文章分为四章内容,第一章介绍开 ...
最新文章
- 计算机将成为学生们的老师英语,重庆英语教师
- CodeForces - 906E Reverses(回文自动机+Palindrome Series优化dp)
- Ninject使用demo
- python3 定时任务_Python3.x:定时任务实现方式
- phoshop cs6软件提示试用版已过期,怎么办
- git将本地仓库强制替换掉远程仓库
- 通过SecureCRT工具从远程Linux服务器下载文件到本地Windows
- 【视觉SLAM14讲】【汇总】
- vue 处理跨域问题及解决方法小结
- Effective Java目录
- 在VS2017中添加WTL窗口
- js多重循环遍历渲染
- args 打印输出argparse.ArgumentParser()的所有选项和默认值
- Python代码画小鸭穿雨靴--turtle绘图
- Hadoop安装准备
- android qq右上加号,Android 模拟QQ空间小加号+用popupWindow制作spinner
- 树莓派USB存储设备自动挂载并通过脚本实现自动拷贝,自动播放视频,脚本自动升级等功能...
- Offer拿到了!2023届校招继续投!
- 可信计算和可信赖计算的渊源
- 计算机图像处理相关论文,计算机图像处理技术论文