志当存高远,望尽天涯路

人生已如此艰难,就不要再拆穿了


  • 首页

  • 归档

  • 分类

  • 标签

QR-CODE登录原理

发表于 2021-03-26

扫码登录原理

  • pc端请求二维码(自带token)
  • 客户端ajax轮询(发送token)

客户端扫描

  • 客户端已经登录(前提)
  • 扫码得到token并将token和当前用户登录信息一块发给server
  • server收到用户信息和token,将token和用户id作关联并登录,生成新token
  • ajax轮询得到新token标志登录成功

d3-最短路径问题

发表于 2021-02-05 | 分类于 算法

D3最短路径

  • Dijkstra on node-link diagram
阅读全文 »

How-to-measure-a-DOM-node

发表于 2021-01-05

How can I measure a DOM node?

128. 最长连续序列

发表于 2020-09-09 | 分类于 算法

说明

给定一个未排序的整数数组,找出最长连续序列的长度。
要求算法的时间复杂度为 O(n)。
示例:

1
2
3
输入: [100, 4, 200, 1, 3, 2]
输出: 4
解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。

阅读全文 »

react中context无法阻止渲染问题

发表于 2020-08-08 | 分类于 react

使用react的context之后,会导致组件被刷新。很多时候为了减少render的次数,我们不得不使用shouldUpdate或memo等方法,但是当组件使用了context上下文之后,无论你的反回值是true或false,只要context里的值发生了改变,都无法阻止组件的render,这也是因为组件需要监听context值的变化,但有时,我们并不需要所有变化都被更新。参考

解决思路

  • 更新时不使用扩展符{…},context就不会生成新的对象,但明显不合理。
  • 把值存在顶层的state中,不存context中,这样又有点绕,得不偿失
  • 使用EventEmitter这种发布式模式,不在本次讨论范围内,包括使用redux的方案
  • 使用不同颗粒度的context
  • 既然使用了useContext的组件一定会被render,只要把useContext进行上移即可,移到父组件上去调用,相当于一种折中的方式,把大量子组件的更新context的方法移交到父组件中去,这样就可以变相的优化了。
      在以上几点中,我最后选择了使用第五点,也就是把context的使用提升到了父级,这就有点类似于redux中的connect组件了,在这里可以把context转化成props传入子组件,然后在子组件中判断props的变化。

695. 岛屿的最大面积

发表于 2020-06-22 | 分类于 算法

说明

给定一个包含了一些 0 和 1 的非空二维数组 grid 。

一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。

找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)

阅读全文 »

33. 搜索旋转排序数组

发表于 2020-06-19 | 分类于 算法

说明

假设按照升序排序的数组在预先未知的某个点上进行了旋转。

( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。

搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。

你可以假设数组中不存在重复的元素。

你的算法时间复杂度必须是 O(log n) 级别。

阅读全文 »

674. 最长连续递增序列

发表于 2020-06-12 | 分类于 算法

说明

给定一个未经排序的整数数组,找到最长且连续的的递增序列,并返回该序列的长度。

1
2
3
4
输入: [1,3,5,4,7]
输出: 3
解释: 最长连续递增序列是 [1,3,5], 长度为3。
尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。

阅读全文 »

webpack-prefetch插件

发表于 2020-06-08 | 分类于 webpack

什么是prefetch?

这种“资源提示” 告诉浏览器这是一个在未来可能使用到的资源。

阅读全文 »

weback插件系统学习

发表于 2020-06-07 | 分类于 webpack

为什么要学习插件?

  • webpack基础配置无法满足需求
  • 插件几乎能够任意更改webpack编译结果
  • webpack内部也是通过大量内部插件实现的
阅读全文 »
12…17
331502715@qq.com

331502715@qq.com

162 日志
14 分类
113 标签
© 2021 331502715@qq.com
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4