跳到主要内容

· 阅读需 1 分钟

gitlab ci 执行流水线 Job 返回如下错误:

Reinitialized existing Git repository in /home/gitlab-runner/builds/AXzjdXyZ/0/root/blog/.git/
fatal: git fetch-pack: expected shallow list
fatal: The remote end hung up unexpectedly

原因是 centos 7 git 版本太老不持之新 API,需要升级一下 git:

#安装源
yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
#安装git
yum install git
#更新git
yum update git

· 阅读需 14 分钟

Babel 是一个工具集,主要用于将 ES6 版本的 JavaScript 代码转为 ES5 等向后兼容的 JS 代码,从而可以运行在低版本浏览器或其它环境中。

因此,你完全可以在工作中使用 ES6 编写程序,最后使用 Babel 将代码转为 ES5 的代码,这样就不用担心所在环境是否支持了。下面是一个示例:

· 阅读需 10 分钟

React 16.8 后的 hooks api 出现以后,大大解决了代码的简介性,然而除了官方提供的几个 hooks api 之外,我们还可以自定义自己的 hooks api,以实现业务代码的简化和复用。

我们可以通过下列的例子,真正进入 hooks 的世界。

· 阅读需 2 分钟

react-router v4 之后,在组件之外使用路由必须通过 createBrowserHistorycreateHashHistory 方法返回的 history 实例,并传入给 Router 组件,替换掉原本的 BrowserRouter/HashRouter 包裹组件。

然而在 最新的 v6(超强劲破坏性版本) 版本中,这种方法依然不可取(url 变化但是页面不变),除了上述所说之外,同时还需要监听 history 的变化,手动重新渲染页面。

· 阅读需 1 分钟

当我们在通过各种工具可以实现代理,但是都只对游览器有效。很多时候在命令行中执行一些下载命令仍然不走代理。

· 阅读需 10 分钟

一提到循环,我们都会条件反射的想到 for 循环,虽然 for 循环能解决代码中大部分的问题,但是一旦遇到多重循环,其代码就显得不是那么优雅简洁了。在特定的场合中,合理运用 forEach, map, find, findIndex, filter, some, every, sort, reduce 这几个数组方法,就能够让我们事半功倍。

通往成功的道路有很多,但是总有一条路是最捷径的

· 阅读需 15 分钟

typescript 功能不过多介绍,本文属于 typescript 进阶教程,适合了解 ts 基础又想要进一步提升的人。

本文将实现一个对 ant-design form-item 组件二次封装的功能。