文章目录

  • 前言
  • 一、分析
  • 二、行动
    • 1、修改题库
    • 2、修改函数
  • 三、收获
  • 四、扩展
  • 五、引用

前言

  学微信小程序课程学到题库开发,正好看到个考研模型,相似度比较高,就起了魔改一番的心思

一、分析

1、原项目为了丰富题库,有题号和选项双随机的功能,但在考研目标建议上没有必要,砍掉
2、原项目ABC的分值固定,只要统计ABC的个数即可,但考研目标里不同题目的同一选项分值可能不确定。暂定为修改题库,增加选项对应分值
3、原项目采用一个选项绑定一个函数的做法,比较麻烦,可以简化成一个函数

二、行动

1、修改题库

globalData: {userInfo: "hello",question: [{ "question": "关于学习能力,以下哪种情况最符合你?", "option": { "A": "学习时不知道如何着手,很恐慌", "B": "自己学起来还好或者需要有人辅导和监督", "C": "只要给我资料、视频和书,我全部可以自己学", "D": "我学什么东西都很快,所有考试学一段时间都觉得没问题"}, "score": { "A": -1, "B": 0, "C": 1, "D": 2 } }, { "question": "关于考研投入,以下哪种情况最符合你?", "option": { "A": "一边找工作/实习,一边考研,或者每天花5小时以下", "B": "正常准备,没课时基本都在复习", "C": "全心投入,平均每天差不多花8小时复习,偶尔放松,放假也如此", "D": "超常投入,平均每天花10个小时左右甚至更久,杜绝考研以外活动" }, "score": { "A": -1, "B": 0, "C": 1, "D": 0 } }, { "question": "关于心理素质,以下哪种情况最符合你?", "option": { "A": "我害怕考试,每次大考都考得比正常水平差", "B": "考试有些紧张,但基本都能发挥正常水平", "C": "我是考试型选手,越到关键时刻发挥越好" }, "score": { "A": -1, "B": 0, "C": 1 } }, { "question": "关于本科院校,以下哪种情况最符合你?", "option": { "A": "专科院校", "B": "二三本院校", "C": "一本院校", "D": "211院校", "E": "985院校", "F": "顶尖985院校" }, "score": { "A": 1, "B": 2, "C": 3, "D": 4, "E": 5, "F": 6 } }]
}

  对字典的key-value格式更有感觉了,而且还可以并列嵌套。引用格式app.globalData.question[0].question或app.globalData.question[0].option[“A”],value等于.name等效于[‘name’]
  报错Property assignment expected,后面发现是key-value没有严格对应,少了个}

2、修改函数

js内容

data: {index: 0,scoresum: 0,questionDetail: app.globalData.question[0].question,answerA: app.globalData.question[0].option["A"],answerB: app.globalData.question[0].option.B,answerC: app.globalData.question[0].option.C,answerD: app.globalData.question[0].option.D,answerE: app.globalData.question[0].option.E,answerF: app.globalData.question[0].option.F,
},answerClick: function (e) {var ans = e.currentTarget.dataset.which;this.data.scoresum = this.data.scoresum + app.globalData.question[this.data.index].score[ans];console.log(this.data.scoresum);this.setData({index: this.data.index + 1, })if (this.data.index == 4) {wx.redirectTo({url: '/pages/result/result?sum=' + this.data.scoresum,})}else{this.setData({questionDetail: app.globalData.question[this.data.index].question,answerA: app.globalData.question[this.data.index].option["A"],answerB: app.globalData.question[this.data.index].option["B"],answerC: app.globalData.question[this.data.index].option["C"],answerD: app.globalData.question[this.data.index].option["D"],answerE: app.globalData.question[this.data.index].option["E"],answerF: app.globalData.question[this.data.index].option["F"],})}
},

wxml内容

<view url="" class="weui-cell weui-cell_access" hover-class="weui-cell_active" bindtap='answerClick' data-which="A"><view class="weui-cell__bd">A、{{answerA}}</view><view class="weui-cell__ft weui-cell__ft_in-access"></view>
</view>

三、收获

  其实收获很少,疑问倒是一大堆,毕竟可以说是没有任何前端基础。

  1. get到了bindtap函数传参,在view里增加data-name=“value”,js函数使用var ans = e.currentTarget.dataset.name; 来获取value值的方法
  2. 在test.js里看到了页面周期函数,可以监听用户的各种行为并做出动作,预留好了等待扩展
  3. 前端编程的感触,内容靠HTML,样式布局靠CSS,逻辑功能靠js

  一些疑问

  1. answerClick: function (e) {} 里的e是类似于Python里的self吗?
  2. 赋值方法有name : value,var name = value,name=value和this.setData(name1 : this.data.name2),一团乱,各自的应用场所?
  3. 函数定义和调用,都和这个: 有关系。调用跟Python的functionA(arg1= xxx, arg2 =xxx)的类似?可以看成一个字典,然后是name : value,果然有大括号
  4. 让人头疼的变量引用方法,app.globalData.question[0].question,app.globalData.question[0].option[“A”],this.data.index,{{answerA}},涉及到变量的作用域?有时间看一下官方文档
  5. 有点迷的页面结构,HTML和CSS还好,这个js开头就来一个Page啥意思?难道也是一个函数?不过这回的参数变成了一个字典?所以要加大括号,因为不止一对key-value?所以onload之类的本质也是一个变量,函数体是它的值?难怪用,隔开
const app = getApp()
Page({data: {},beginAnswer: function() {wx.navigateTo({url: '../test/test'})},onLoad: function () {},getUserInfo: function(e) {}
})

四、扩展

  • 1、界面美化,加入CSS样式
  • 2、json里放数据可以吗?
  • 3、点击下一题再跳转
  • 4、使用单选框

五、引用

心理测试小程序

微信小程序学习(一)心理测试题库改造相关推荐

  1. 自己的微信小程序学习笔记【3】——第三方UI库Lin-Ui的加载及使用

    其他微信小程序的学习笔记 自己的微信小程序学习笔记[1]--小程序开发工具的使用及项目文件说明 自己的微信小程序学习笔记[2]--从零开始新建项目 文章目录 其他微信小程序的学习笔记 前言 一.Lin ...

  2. 小程序源码:网课查题微信小程序源码下载,题库资源丰富自动采集,支持语音拍照识别

    这是一款网课查题微信小程序源码 题库资源丰富自动采集, 支持语音拍照识别 该款采用接口方式,所以题库自动全网采集 而且该款小程序无需服务器和域名即可搭建 大家解压源码然后使用微信开发者工具打开源码 然 ...

  3. 微信小程序学习笔记一 + 小程序介绍 前置知识

    微信小程序学习笔记一 1. 什么是小程序? 2017年度百度百科十大热词之一 微信小程序, 简称小程序, 英文名 Mini Program, 是一种不需要下载安装即可使用的应用 ( 张小龙对其的定义是 ...

  4. 微信小程序学习(1)-基础开发

    学习微信小程序 微信小程序学习(1) 微信小程序学习(2) 文章目录 学习微信小程序 注册和初始化 小程序配置 tabbar导航栏 模板插样与WXML 循环渲染 条件渲染 模板 微信小程序脚本WXS ...

  5. 微信小程序中使用vant组件库(超详细)

    目录 前言 Vant Weapp的安装与使用 1.安装 node.js 2.通过 npm 安装 3.修改 app.json 4.修改 project.config.json 5.构建 npm 包 6. ...

  6. 微信小程序学习(四):微信小程序连接云数据库

    微信小程序学习(四):微信小程序连接云数据库 我今天就只是初步的连接了数据库,我就说一下我的基础代码,和我整了好久才整完的问题 这里有个初始化,非常重要!非常重要!非常重要!!! 是放在app.js里 ...

  7. 微信小程序学习(加深)

    微信小程序学习(加深) 一.wx:if 与 hidden 的对比 wx:if 以动态创建和移除元素的方式,控制元素的展示与隐藏 hidden 以切换样式的方式(display: none/block; ...

  8. 微信小程序学习实录1(wxml文档、引入weui、双向数据绑定、提交表单到后端)

    微信小程序学习实录 一.wxml文档 二.新建页面快捷方式 三.微信小程序引入weui 四.双向数据绑定 1.wxml渲染层 2.js逻辑层 提交表单到后端 五.微信小程序跳转到H5 一.wxml文档 ...

  9. 微信小程序学习日志(一)

    微信小程序学习日志之工具配置及创建简单页面 1.任务与分工 在这次点餐系统项目中,我和我所在的小程序组的共三个成员主要负责小程序前端的实现.我们针对菜单,点菜清单(结算页面)以及评论三个主要页面进行了 ...

最新文章

  1. 终于完成了“微软”化
  2. CNN收购Beme视频分享APP 11个员工也将加入
  3. 为什么方差的自由度是n-1啦?
  4. linux 划ext4,linux – 有没有像ext4这样的’快速’格式?
  5. 《Linux内核完全注释》《完全剖析》 » 阅读本书所需的基础知识 -- 再次强调。
  6. 《大数据》第1期“专题”——大数据机器学习系统研究进展(上)
  7. linux spi不使用框架,Linux spi驱动框架之执行流程
  8. 人生苦短,Python值得!这些Pandas隐藏小技巧你知道吗?
  9. 【半年总结】愿有岁月可回首
  10. Milne格式MATLAB,matlab考试题
  11. 新闻平台聚合之新浪新闻爬虫发布
  12. 使用 cookie的一些缺陷和隐患
  13. 第一门慕课计划——在广东海洋大学推广MOOC学习
  14. Android自定义view绘制卡顿,Android自定义View实现绘制虚线的方法详解
  15. Python 用Pygame写一个Flappy Bird经典小游戏
  16. edge浏览器受信任_Edge 浏览器如何添加信任站点
  17. 华为java一个月写多少行代码_[财经]阿里员工吐槽华为:面试官1万行代码都没写过? - 南方财富网...
  18. 2018.6.14 华为南研所面试经验
  19. dfs与bsf问题合集
  20. Python免费字幕翻译(google)

热门文章

  1. 如何在工作中保持稳定情绪
  2. 用Python分析国庆旅游景点,告诉你哪些地方好玩、便宜、人又少
  3. CentOS8网络配置
  4. Java学习笔记 --- 进制转换
  5. 3D图形学(9):非真实感渲染(NPR)
  6. 未雨绸缪 企业危机公关策略解读
  7. JAVA多线程并发Demo
  8. pyqt5+eric6--PyQt开发最佳实践
  9. [转]xml文件中的转义字符
  10. ‘nvidia-smi‘ 不是内部或外部命令,也不是可运行的程序或批处理文件