本文介绍一下 Echarts 的基本配置项,我的项目是在 Vue 中搭配 vue-echarts 来使用的。
奔跑的Q丶
主题凑合用,样式即将改版...
Node 爬虫实践 - Gitlab 文件下载
公司的设计图稿等全部存在 Gitlab 上的某个仓库中,恰好某次迭代需要使用到其中的图稿,因为历史图稿使这个仓库异常大,而我只需要其中很小的一部分,就不想 clone
整个仓库而只想下载需要的文件夹。但是在使用 Git 时如果只想下载其中部分的文件夹是一件很复杂的事情,尝试了各种指令后发现无论如何都要先 fetch
整个项目,而下载其中的一个文件却是一件简单的事情,那不如就动手写个爬虫吧。于是就有了这个项目 gitlab-fileDownload:
隐藏滚动条方法
隐藏滚动条方法:
1 | .container { |
JS 中的广度与深度优先遍历
现在有一种类似树的数据结构,但是不存在共同的根节点 root,每一个节点的结构为 {key: 'one', value: '1', children: [...]}
,都包含 key
和 value
,如果存在 children
则内部会存在 n
个和此结构相同的节点,现模拟数据如下图:
已知一个 value
如 3-2-1
,需要取出该路径上的所有 key
,即期望得到 ['three', 'three-two', 'three-two-one']
。
git rebase 批量合并 commits
git rebase
是一个经常用以美化分支线的指令,近来听说了一个 squash
的指令可以用来合并多个 commits
,研究后更是觉得 rebase
的神奇了,本文做一个记录。
踩坑对象解构赋值
对象的解构赋值为日常代码的开发提供了很大的便利,尤其适用 React 开发中对 state
中的引用数据类型 copy 一份再去操作的情况。在使用了如此久的情况下一直没有深究解构赋值或者 Object.assign
的浅拷贝会产生什么影响,于是终于踩到坑了。
文本框光标处插入数据的方法
在 React 项目中遇到一个需求,点击 tags
后插入进正在编辑的 textarea
中。
在翻阅了一些网上的答案后发现基本上都在围绕 setSelectionRange
展开,然而我并不想选中啊,好吧,没有耐心再去找了。自己再去尝试下,每次把光标移出文本框后通过控制台 focus
会发现光标依旧定位在移出时的位置,再联系上面的 api
,让我意识到 input
是存在一个记录光标位置的类似属性的。在控制台直接打印出 input
,寻寻觅觅发现了神奇的东西 selectionStart
和 selectionEnd
。修改相应的值,发现两值不一样时会选中区间内的文本,再次 focus
也就是定位到了可以修改这个选中值的地方了,完美~
从一个 CRUD 上手 React 和 AntD
添加多个 SSH 秘钥
本月堆积了好几篇文章没写了,趁着最后几十分钟,为了完成年初计划马虎更新一篇记录性的文章吧。由于本月刚换了新的公司,新公司的代码托管在 GitLab 上,因此有了管理 2 个 SSH 秘钥的需求,查阅资料后发现并不难,记录与分享一下。
首先生成 SSH 的指令不陌生:
1 | ssh-keygen -t rsa -C "邮箱地址" |
默认会存放在个人文档根目录下的 .ssh
下,并以 id_rsa
的文件名生成秘钥对。
Plus - JS 面试题
设计一个 plus 方法,达到以下测试结果。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const assert = require('assert')
describe('闭包应用', function(){
it('plus(0) === 0', function(){
assert.equal(0, plus(0).toString())
})
it('plus(1)(1)(2)(3)(5) === 12', function(){
assert.equal(12, plus(1)(1)(2)(3)(5).toString())
})
it('plus(1)(4)(2)(3) === 10', function(){
assert.equal(10,plus(1)(4)(2)(3).toString())
})
it('方法引用', function(){
var plus2 = plus(1)(1)
assert.equal(12, plus2(1)(4)(2)(3).toString())
})
})