说明:是针对我做的项目的总结,避免以后重复犯错,可能对于看到的您并没有太大作用哦!

项目中实现的功能有很多,只记录稍微复杂点的

功能一:发布评论,如下图

功能描述:点击上面的发布按钮,可以发布评论,评论中要有发布人的姓名,回复给谁,发布的内容,以及发布的时间

问题描述:每一条留言下面都可以发布评论,因为发布一条评论需要记录很多信息(回复人,留言人,时间,内容,点赞...),想着信息多,为了方便管理,我把他们存放在一个对象中,并将这个对象,放在了data中,结果等我发布信息的时候,就会发现,如果我发布一条信息后,再去发另外一条信息,就会修改我上面一条发布的信息,并且我不能清空输入框中的信息

解决思路:其实这个问题我一开始还挺困惑的,因为我每发布一条信息都会将其push到我的渲染列表中的,而且它也可以正常渲染,那为什么会出现上面的问题呢?主要原因就是出现在我把信息都存放到了对象中,所以我每次向渲染列表中push的其实是一个对象,这样因为对象引用的关系,自然一个改变其他的都会改变了

解决办法:

1、不要把需要记录的数据存放在对象中,将其拿出来,比如内容就content:" ",记录

2、那么多信息都拿出来看着比较难受,因为有些是固定的,有写时点击发布按钮的时候才需要,所以我只把必须放在data中的属性放在data中,然后再data外面用一个属性去记录这些需要的值,在提交的时候,提交的也是外面的这个对象,那么我每次在重新发布留言的时候就不会出现上面的问题了

主要知识点:如果两个对象的引用相同,那么一个对象的属性值改变,也会改变另一个对象的属性值

功能二、点赞功能

功能描述:

1、同一个人可以给多条评论点赞,但是每条评论同一个人只能点赞一次,不可重复点赞

2、该登录者点过赞的,点赞图标为红色,鼠标移入提示已点赞,没有点赞的,点赞图标为黑色,鼠标移入提示点赞

3、点赞之后,后面的数字会+1

这个不难实现,稍微需要动点脑子的地方是:怎样知道该登录者是否已经点赞,如果已经点赞,再次点击点赞图标,不让数据增加

解决办法:

1、每一条评论用一个数组记录点赞人的姓名,每次点赞的时候查找这个数组中是否有登录者的名字,如果已经存在,就不执行操作,不存在的时候再执行操作

2、提示点赞或已点赞,这个我是用title属性实现的(不难,就不再详细说了)

功能三、显示评论发表的时间

功能描述:如果发布的时间在一个小时内,那么评论上显示的时间是:n分钟前,如果是超过一个小时,直接显示发布的日期(年月日)

解决思路:

1、后端记录每条评论发布的时间

2、用当前时间减去发布的时间,并做一些处理

3、开启一个定时器,每一秒调用一次时间处理函数

关键代码如下:

methods:{setInt(){clearInterval(this.timer)this.timer = setInterval(this.time,1000)},time(time){let nowTime = new Date()let lastTime = new Date(time)let t = Math.floor((nowTime - lastTime)/1000)let Day = Math.floor(t/86400)let Hour = Math.floor(t%86400/3600)let Min = Math.floor(t%86400%3600/60)let str = ''if(Day<1&&Hour<1){str = String(Min)}else{let year = lastTime.getFullYear()let month = lastTime.getMonth()+1let day = lastTime.getDate()str = year+"年"+getTwo(month)+"月"+day+"日"}function getTwo(n){return n<10?'0'+n:''+n}return str}
}

前端博站项目中遇到的问题总结相关推荐

  1. 前端开发从项目中获得什么_我如何获得副项目的前10个客户以及从他们那里学到的东西...

    前端开发从项目中获得什么 by Tigran Hakobyan 由Tigran Hakobyan 我如何获得副项目的前10个客户以及从他们那里学到的东西 (How I got my first 10 ...

  2. 前端人真实项目中遇到的问题总结

    // 以下题目有简单也有难的(具体看你怎么定义). // 如果能做到立马想出答案的,则前端算是学的不错的了. // 如果需要百度才能做出来(直接百度答案的,我就只能说你开心就好),那么也说明一般. / ...

  3. 在两个TIA博途项目中组态PROFIBUS和PROFINET通信的具体方法

    在两个TIA博途项目中组态PROFIBUS和PROFINET通信的具体方法 为了在两个项目间实现S7-1200/S7-1500的通信,要为其中一个CPU创建GSDML文件,然后将其安装在TIA Por ...

  4. SpringBoot+Vue博客项目中遇到的坑

    shiro整合jwt,用于用户登录逻辑流程: 登录流程: 用户登录:输入用户名和密码–>后端校验: –>有异常:处理异常 –>正常,生成jwt 访问接口时,统一被jwtFilter, ...

  5. 前端:一键清除项目中无用的console.log代码

    关注并将「趣谈前端」设为星标 每天定时分享技术干货/优秀开源/技术思维 前言 说起console.log调试,不用多说,那是非常的好用,开发中帮助我们解决了不少Bug.我们经常能在开发环境中看见这一坨 ...

  6. 前端监控--vue项目中使用友盟统计监控

    在项目的使用过程中,不可避免的会出现各种奇奇怪怪的报错,有的可能会导致项目程序崩溃无法运行,但是我们作为开发人员是不会立刻知道这种突发情况的,所以我们需要搜集程序的报错信息,及时解决错误,提高项目的稳 ...

  7. 前端知识及项目中常用的的概念和个人理解整理分享-1(其它前端知识可来我的博客主页查看o,有高见的时候,可以密我哦)

    1.Vue的核心概念:数据驱动(双向数据绑定),组件复用(降低重复开发,简化开发): 2.关于v-model指令:实现MVVM思想的核心指令,双向数据绑定,即数据发生变化,同步视图,视图发生变化,同步 ...

  8. 前端如何在项目中做出亮点?

    作者: 磐冲 https://segmentfault.com/a/1190000022795484 你负责的业务是什么?(学会发现问题) 之前在群里参加活动的同学,有不少说在小公司,被业务需求压着. ...

  9. 前端工程师在项目中如何做出亮点(深度好文)

    原文地址 https://segmentfault.com/a/1190000022795484 这篇作为之前一篇文章的延续,以及对过去3个月我模拟面试过的30多位同学的面试情况总结,我们来聊一下怎么 ...

  10. 前端如何在项目中做出亮点

    (给前端大全加星标,提升前端技能) 作者:磐冲 https://segmentfault.com/a/1190000022795484 1.你负责的业务是什么?(学会发现问题) 之前在群里参加活动的同 ...

最新文章

  1. 存储过程和函数 PROCEDURE FUNCTION
  2. PouchContainer 发布 0.3.0 版本,支持 Kubernetes 拥抱 CNCF 生态
  3. linux终端出现bash: setup.bash: No such file or directory,和.bashrc文件的问题
  4. 军转干部计算机测试题,2015福建军转干考试计算机基础知识:计算机网络
  5. 剑指 Offer 07. 重建二叉树【千字分析,三种方法】
  6. #if、#if defined 的使用
  7. 【PostMan】postman如何发送并发请求
  8. 转:【HTTP】常见错误码说明
  9. mutiset HDOJ 5349 MZL's simple problem
  10. Python使用库读取数据
  11. sed shell 替换空格_shell三剑客之sed!
  12. 你了解语音识别技术吗?
  13. AngularJs自定义指令的详解
  14. 熊猫烧香源码分析_学习大熊猫分析
  15. 数独超难题目_号称世界上最难的一道数独题,你敢来挑战吗?据说答案只有一种...
  16. PPT中插入图片背景透明化小技巧
  17. 如何使用阿里云搭建个人网站 1
  18. 傅里叶变换之掐死教程
  19. 介绍中国传统节日的网页html,关于中国传统节日介绍的作文
  20. 借助阿里云轻松部署企业网盘

热门文章

  1. scratch 打字游戏
  2. 面试必备:VUE面试题(含答案)
  3. Linux —— 动态库和静态库
  4. python解开压缩文件6位纯数字密码
  5. 串口收数数码管显示(串口带协议带校验)
  6. 【汽车总线技术】PCAN-Diag FD简介及其应用 ——手持式CAN/CAN FD总线诊断设备
  7. 电压电流测量模块在matlab,MATLAB仿真时用simulink的RMS模块测量电压有效值,总提示如下警告,怎么破,跪求?...
  8. __stdcall调用约定
  9. 数据分析 之八种方法
  10. PS CC2019新手必学基础(首选项)设置