本周总结

Author Avatar
Peipei Wong 8月 05, 2017
  • 在其它设备中阅读本文章

分页插件

写分页插件,我开始的想法是:

  1. 判断是否显示“上一页”
  2. 判断是否显示“第一页”
  3. 判断是否显示“…”、”current-2”、”current-1”
  4. 判断是否显示 current页面
  5. 判断是否显示”current+1”、”current+2”、“…”
  6. 判断是否显示“最后一页”
  7. 判断是否显示“最后一页”

我的目的是最少要显示cuurent周围的四个number,按照这个想法写出来,当cuurent为1时,只会显示123三个number,而我的预期是现实12345这五个number😔调整一下做法,将上面的3-5合并,leftright表示current-2current+2,在left<0时候,将right加上left的相反数,right>total同理
最后,我还是找了一个插件用在项目中,👉插件的名字是:react-paginate,css部分需要你自己去写…

react and jquery

目前有一个container的组件,它的子组件是list和detail,list的子组件是item,点击item,detail组件会显示,显示效果是通过增加删除类名实现的。想着组件传值比较麻烦,于是就在方法里面直接使用jq早啊道元素控制。大哥告诉我,这个解决办法是不推荐的。👉正确的做法是使用state。通过改变state的值,进而改变元素的class。

redis

还记得之前的一个面试问题:视频有最热视频、点赞最多视频、其他视频,每次去服务器要十个数据…由于用户使用量很多,每次去数据库查询,访问量太大。这样的话,👉可以使用redis去做缓存,这样取数据库可以直接取缓存中取,设置一个时间去更新redis即可。
现在又一个需求,是记录每天用户登录网站的数量。👉方法一:给用户表增加一个最后登录时间的列,每天定时执行程序,统计一下最后登录时间是昨天的用户数量。这个方法中,选择什么时候去执行程序很重要,要不然就会有漏网之鱼。👉方法二:最粗暴的办法是,在redis中创建一个字段,它是一个数组,每次知道用户登录的时候,就将用户的idpush进数组,每天用户的登录的数量,直接通过数组的长度就可以得到。这个方法的缺点就是:用户的id字段也是一串很长的字符串,数组会特别大。👉方法三:在redis中创建一个字段,它是一个字符串,默认是长度是用户的数量的0,若用户登录,就将对应的位置为1。在这三个方法中,第三个方法是最优方法。
还有一个可以做缓存的数据库叫memcache,它和redis的区别就是,redis可以持久化。

插件js-base64

Graphql中自带的分页,after字段是base64的字符串。前端传值就需要将数字转化成base64位的字符串。

import { Base64 } from 'js-base64';
const cursor = Base64.encode(number);

最后说句题外话,任何炒作都不能改变一个东西没落的事实,与其去炒作,还不如用脑子把东西做的更好。