ltaoo's web


  • 首页

  • 分类

  • 归档

  • 标签
ltaoo's web

更新 macOS Mojave 后 vim 打不开

发表于 2018-10-22  |  2018-10-22   |   分类于 随笔
1
2
3
4
5
Vim: Caught deadly signal SEGV
Error detected while processing function youcompleteme#Enable[5]..<SNR>31_SetUpPython:Vim: Finished.

line 39:
Exception MemoryError: MemoryError() in <module 'threading' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.pyc'> ignored

使用vim时报错,从报错信息中可以看出是youcompleteme相关的东西有问题,其实就是Valloric/YouCompleteMe这个插件有问题。
幸运的是这个问题也有人遇到,并且有人给出了各自的解决方案。

阅读全文 »
ltaoo's web

antd 自定义表单的问题 - 1

发表于 2018-10-22  |  2018-10-23   |   分类于 React

在使用 antd 的表单过程中,发现存在许多的问题。该博客会对我曾经遇到过的问题做一个总结,由于内容太多,所以预计会分成 3 篇。

这是该主题的第一篇,主要介绍「什么是自定义表单」。全文会以「简历表单」作为示例来进行说明。

阅读全文 »
ltaoo's web

前端路由与菜单

发表于 2018-08-26  |  2018-08-28   |   分类于 JavaScript

目前绝大部分单页应用都由前端控制路由,如react可以使用react-router、vue可以使用vue-router。路由库的使用已经有非常多的文章来介绍,所以本文的重点在于「基于路由配置自动生成导航菜单」,所用技术栈为react + react-router-dom + antd。

为什么是菜单呢?
它绝大部分内容和路由是相同的,但又有部分不同,如果维护两份带来的是巨大的维护成本,只需要修改一处即可同步路由与菜单的变化。

本文目标读者为了解基本的react-router使用,想要在项目中通过路由配置自动生成导航菜单,并正确处理菜单的高亮。

阅读全文 »
ltaoo's web

前端如何缓存请求

发表于 2018-07-09  |  2018-09-03   |   分类于 JavaScript

缓存一直以来作为性能优化的一环被广泛使用,

  • 数据库缓存
  • 代理服务器缓存
  • CDN 缓存
  • 浏览器缓存

等等,几乎在每一层,都有缓存存在。本篇博客讨论的不是上面这些缓存,而是由我们自己控制的缓存,具体来说是「请求」的缓存,如何优化请求的缓存让我们的应用更好。

阅读全文 »
ltaoo's web

前端怎么做好权限控制

发表于 2018-04-09  |  2018-05-02   |   分类于 JavaScript

现如今我们访问的每个网站,或多或少都会存在「权限控制」。

以一个博客系统为例,系统内共有三种角色

  • 1、游客
  • 2、会员
  • 3、管理员

不同角色支持不同的操作,比如

  • 1、游客可以访问博客列表页、博客详情页
  • 2、会员除游客权限外,还可以提交博客、提交评论、对博客进行编辑、删除操作等。
  • 3、管理员除上述权限外,还可访问用户管理页对用户进行管理。

上述说明「什么用户能够进行什么操作,不能进行什么操作」,可以理解为就是「权限」,根据这些权限,做出正确的处理,就是「权限控制」,而「角色」,是「权限」的集合,也方便我们对用户的定义。

阅读全文 »
ltaoo's web

一次「错误」的 Promise 实现 - 2

发表于 2018-04-04  |  2018-04-04   |   分类于 JavaScript
  • 一次「错误」的 Promise 实现 - 1

时隔快两月,才产出了第二篇。在实际写博客中,发现Promise实在太难了,初稿在 2/18 就开始写,写到「链式调用」,发现自己还是对原理不够了解,于是耽搁了许久。期间又看了《你不知道的 JavaScript(中卷)》关于异步的部分,深觉自己的浅薄。

我们总是说回调不好用,因为回调地狱,但是回调也可以不写成回调地狱,只是写法问题,如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
foo(function () {
foo(function () {
foo(function () {
console.log('callback hell');
});
});
});

// 可以写成这样
function handler1() {
foo(handler2);
}

function handler2() {
foo(handler3);
}
function handler3() {
console.log('callback hell?');
}

foo(handler1);

而且本质上来说,Promise也是回调啊,Promise究竟在内部做了什么事情,让我们非常乐意接受了呢?

阅读全文 »
ltaoo's web

一次「错误」的 Promise 实现 - 1

发表于 2018-02-11  |  2018-02-18   |   分类于 JavaScript

Promise在日常中经常用到,并且也能够熟练使用:

1
2
3
4
5
6
7
new Promise((resolve) => {
console.log('a')
resolve('b')
console.log('c')
}).then((data) => {
console.log(data)
});

上面代码会依次打印a、c、b,对此我们都毫无疑义。

但是为什么呢?我们能自己实现一个Promise库吗?

阅读全文 »
ltaoo's web

可视化布局工具有价值吗?

发表于 2018-02-09  |  2018-02-09   |   分类于 随笔

可视化布局虽然已经发展很久,但一直没有出现被大量使用的平台或工具,而实际上这类需求确确实实存在,那么,这类可视化布局工具到底有没有价值呢?

阅读全文 »
ltaoo's web

写给 JSer 的 python 学习手册 - 数据类型篇

发表于 2018-01-21  |  2018-01-21   |   分类于 Python

基础语法之后,就需要了解数据类型了,大部分语言的数据类型都是相似的,字符串、数字、布尔值、数组对象等等,虽然不同语言可能本质上的实现不同,但在编程时的写法是相似的,只有在本质上有什么不同,就可以作为深入学习去了解了。

JavaScript中有七种数据类型

  • String
  • Number
  • Boolean
  • null
  • undefined
  • Symbol
  • Object

Python3中有六个标准的数据类型

  • String
  • Number
  • List
  • Tuple
  • Sets
  • Dictionary

下面进行一一对比。

阅读全文 »
ltaoo's web

2018 年计划

发表于 2018-01-07  |  2018-01-07   |   分类于 随笔

希望能更加有计划的度过吧,避免不知道做什么而浪费时间。

其实做计划也是一门学问,如何更好地制定计划以能够在能力范围内实现,并且愿意去实现。发现“九宫格”的形式制定计划很多人在使用。

即制定八个大方向,在每个大方向上制定细致的action。

去年“简单”的两项,实质上没有明确的目标,也没有可以衡量的标准,导致没有动力也没有方向去做,陷入迷茫的境地。

基于此,尝试制定明确的目标,看能否做到。

阅读全文 »
123…6
ltaoo

ltaoo

website of litao

55 日志
10 分类
53 标签
RSS
Links
  • 邱俊的博客(Jun Qiu's Blog)
© 2020 ltaoo
由 Hexo 强力驱动
主题 - NexT.Mist