前言:新人投稿,不足之处,还望斧正!

这段时间有个Web前端实验上机测试,当时没有在限定的时间内做出来的,真的感觉自己好笨好笨,所有积累的理论基础感觉自己没有任何一丢丢可以拿上台面来,过后也因此不敢去问做身边的同学,只好自己一步一步地去反省去总结,直到把它实现为之!

实现效果

App.vue 代码如下

<template><div id="app"><div class="test" v-for="(item,index) in datas" :key="index"><imgsrc="./assets/logo.png"title="头像"style="height: 60px; width: 60px"/><span style="font-size: 20px;">{{ item.name }}&nbsp;{{ item.num }}&nbsp;票</span><input type="button" value="投票" @click="add(index)"/></div><div class="ans"><h3>排名第一是:&nbsp;{{ans}}</h3></div></div>
</template><script>
export default {name: "App",data() {return {datas: [{id: 1,name: "小明",num: 0,},{id: 2,name: "小王",num: 0,},{id: 3,name: "小张",num: 0,},],ans: 'none'};},methods: {add(index) {this.datas[index].num++;// console.log(this.datas[index].num);},sort() {var max=this.datas[0].num , i=0;for (const key in this.datas) {if(max < this.datas[key].num){max=this.datas[key].num;i = key;}}return i;}},// 钩子函数(Dom发生更新时就执行)updated() {var max = this.sort();this.ans=this.datas[max].name;}
};
</script><style>
#app {font-family: "Avenir", Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>

总结:在头一次编写的时候没有用v-for循环遍历,而是直接上div写两三个候选人出来,然后使用{{}}v-bind绑定属性,再将“投票”按钮的绑定事件@click=“”放在methods属性中,并将找最大票数的方法sort()写在其中,而最后我却用钩子函数created()调用sort()【created是在new Vue实例创建完成后执行的,其可以访问到实例创建完成后的data(),methods,cumputed等等属性或者方法,而此时是还没有挂载DOM的,一般用于进一步初始化页面,实现函数的自执行

        交卷回来就在想,是不是因为属性是单向绑定的,只能从data中流出,而不能待我点击“投票”按钮时将+1流回data,显然这是错误的分析,因为我的计算方法是直接将data中的值进行自加1的,那么会不会是因为methods的计算方法没能缓存尝试去考虑一下Vue的计算属性cumputed,结果在computed属性中,要传参就得用函数的闭包,而这样子上一步的结果可能就得不到缓存,那和methods属性没多大的区别。再看监听属性watch,可是要实现监听某人的票数发生了变化我就得知道某人更新前后的票数,才能给予它一定的执行事件。也就是这样自我绕死在一棵树上边了!

最后,在百般无奈之下,再去刷了一下Vue的官方文档,看到Vue钩子函数生命周期图表时,才意识到是不是钩子函数一开始就选错了,因为我调用得早了,才导致没有实现实时的排名。

Web前端小测试——Vue简易投票(根据票数实时更新排名)相关推荐

  1. Web前端设计基础测试

    Web前端设计基础测试 一. 多选题(共6 题,30.0分) 二. 单选题(共4 题,20.0分) 三. 判断题(共10 题,50.0分) 一. 多选题(共6 题,30.0分) (多选题,5.0分)关 ...

  2. 好程序员Web前端教程分享Vue学习心得

    为什么80%的码农都做不了架构师?>>>    好程序员Web前端教程分享Vue学习心得,Vue是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向 ...

  3. vue如何获取年月日_好程序员web前端教程分享Vue相关面试题

    好程序员web前端教程分享Vue相关面试题,Vue是一套构建用户界面的渐进式框架,具有简单易用.性能好.前后端分离等优势,是web前端工程师工作的好帮手,也是企业选拔人才时考察的重点技能.接下来好程序 ...

  4. 解决Vue循环中子组件不实时更新的问题

    解决Vue循环中子组件不实时更新的问题 参考文章: (1)解决Vue循环中子组件不实时更新的问题 (2)https://www.cnblogs.com/rever/p/10565042.html 备忘 ...

  5. 2021年最新Web前端HTML,CSS,Vue,React,Jquery大概率面试题合集

    CSS3 HTML5 前端面视题 1.Css3新增的特性 边框: border-radios 添加圆角边框 border-shadow:给框添加阴影 (水平位移,垂直位移,模糊半径,阴影尺寸,阴影颜色 ...

  6. web前端 react与vue 流行框架的比较

    JavaScript是世界上最流行的语言之一,React和Vue是JS最流行的两个框架.但哪一款最适合你? JavaScript越来越受欢迎,许多科技巨头正在从中获益.每天都会出现大量的框架和语言,我 ...

  7. web前端小项目个人实例_Web前端:小程序界面与逻辑项目实训

    大家好,我来了!本期为大家带来的Web前端学习知识是"Web前端:小程序界面与逻辑项目实训",喜欢Web前端的小伙伴,一起看看吧! 主要内容 数据绑定 渲染 界面层数据渲染 事件处 ...

  8. 【经验分享】Web前端开发测试常见问题总结

    [辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...

  9. Web前端笔记-解决Vue编写的输入框(input、textarea等)使用JS设置value时提交表单无效的问题

    主要的原因是vue相当于套了一层,界面上的输入框会关联model,提交表单的时候,他是直接提交model的值,而不是传统的输入框里面的值. 所以用这种: let textAreaItem = docu ...

最新文章

  1. 用Python玩转PPT!
  2. mysql建表字段不能重复_MySQL建表的一些约束条件
  3. 第三讲 一阶线性ODE
  4. MySQL数据库:事务和ACID实现原理
  5. 测试TensorFlow Object Detection API
  6. 利用Excel VBA畫出所有圖標
  7. 二分查找算法java
  8. JAVA知识基础(四):深入理解static关键字
  9. 移动web开发-------meta
  10. 关于web页面打开空白的情况
  11. WebSocket 实现聊天室业务
  12. 连云港师范专科学校计算机老师,喜报:我校学生在2021年中国大学生计算机设计比赛江苏省赛中获一等奖...
  13. 项目中Makefile写法的一种参考
  14. 微信小游戏获取排行榜
  15. 大屏数据展示,5.5寸大屏幕手机更受消费者喜爱
  16. 1 Tbps! 使用英特尔第三代Xeon® Scalable Processor 加速VPP IPsec
  17. 有人离职,工作交接不下去,咋整?
  18. oppo手机忘记解锁图案怎么办
  19. 全排列的算法(八)——序数法
  20. C语言通讯录管理系统(含完整代码)

热门文章

  1. ubuntu18.04 输入法的配置
  2. 什么是负载,什么是网站负载,什么是网站负载均衡?
  3. java小游戏2048实现
  4. 中国团队夺得MegaFace百万人脸识别冠军,精度98%再创记录,论文代码+数据全开源
  5. 台式计算机摄像头怎么打开,台式机摄像头的打开方法
  6. html设置行背景颜色
  7. vue 自适应屏幕的宽高度
  8. Java语言底层架构
  9. C语言快速幂(入门讲解)
  10. git中出现repository仓库不存在的:repository ‘http://47.108.92.196:8090/http://47.108.92.196:8090/‘ not found