享受共同成长的过程。

0%

链表有环

LeetCode 141:判断链表是否有环

题目

给定一个链表,判断链表中是否有环。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。

如果链表中存在环,则返回 true 。 否则,返回 false 。

阅读全文 »

React Hook 是 React16.8 推出的新特性,给我们带来了许多的新特性。这篇主要讲解 React Hook 的使用以及 React Hook 的底层原理。

阅读全文 »

组件有不同的生命周期,也就是有不同的阶段。通过生命周期方法,我们可以指定在不同阶段的行为。

比如:

  • 在组件挂载后,请求网络数据、订阅数据,设置定时器等。
  • 在组件更新前,通过判断 props 或者 state 控制组件是否更新,从而实现性能优化。
  • 在组件卸载销毁前,清理定时器,取消数据的订阅。
阅读全文 »

Promise 是 JavaScript 中描述了异步操作过程,是解决 JavaScript 回调地狱的一个很好的途径。也是我们开发经常用到的东西。

为了更深入的了解一下 Promise,这篇文章就让我们来手写一下 Promise 以及实现 es6 中常用的 api,其实现要求符合 Promise A+ 规范。

阅读全文 »

性能优化是前端的一个大课题,优化得当的话可以为公司节省宽带费用,也能给用户带来良好的用户体验。下面是个人优化方案的一些总结,主要涵盖下面几个方面:

  • 图片优化
  • 缓存优化
  • 打包优化
  • 网络优化
  • 体验优化
阅读全文 »

gitlab 是大多数公司代码管理的工具。之前也很好奇gitlab是怎么搭建的,这次尝试了使用docker搭建gitlab,其中也踩了不少的坑。大家照着我这个过程搭建应该不是什么问题。

阅读全文 »

在早期,我部署项目的过程是,现在本地打好包,然后连同 dist 文件夹一起推到 gitlab 上面,然后再登录到服务器上拉取。简单的项目还好,但是若有好几个前端项目,然后项目又分开发、测试、正式环境,那前面的过程就要重复很多遍,效率很低过程也很繁琐。

因此,就尝试了使用 Jenkins 自动化部署前端项目。弄好了之后,发现真香!效率大大提高,解放双手!舒服!下面记录了我从0到1的过程,还没自动化部署的伙伴们,赶紧试一试!

阅读全文 »