everything starts & ends

再谈 React Router 使用方法

发表于:2015-08-18

去年 9 月份写了一篇 ReactRouter 使用指南,不小心在百度搜索「react-router」关键词排到了第一名。最近收到很多同学反馈说这篇文章里的例子挂了让我补一下。 其实例子里的代码已经很[...]

最近踩得两个 IE 深坑

发表于:2015-08-12

如果这个世界上没有 IE,前端程序员的寿命至少延长十年。作为一个有节操的程序员,对于 IE 下的各种 quirks 就算不说了如指掌也应该略有了解。什么 IE 6 下 margin 双边距啦、IE 的[...]

使用 react-menu-aim 打造更友好的多级菜单

发表于:2015-07-11

写过多级菜单的同学应该都知道当年亚马逊的黑科技:鼠标从一级菜单滑向二级菜单时,如果中间经过了另一个一级菜单,并不会马上切换。这也避免了用户想看二级菜单的时候,必须先精准的横向移动到对应二级菜单的不便。[...]

深入理解 React 的 batchUpdate 机制

发表于:2015-06-22

之前有篇文章写了「为什么 React 这么快」,其中说到一点很重要的特性就是 batchUpdate。我一直以为 batchUpdate 是 Virtual DOM 的什么黑科技,直到上周跑去支付宝跟[...]

解决使用 ES6 写测试时 chai 的报错

发表于:2015-04-22

最近基本所有的项目都开始使用 ES6 语法来写。一是因为很多 ES6 语法确实简洁很多(如箭头函数),二是因为向 ES5 甚至 ES3 兼容的 transpiler 都比较成熟,不用担心兼容性的问题。[...]

我的 2014

发表于:2015-02-18

手贱更新了一下 Ghost 的代码,结果吭哧吭哧的花了一个多小时重新配置了一下 Ghost,顺便升级到了 0.58 版。在开始正文之前,先感叹一下 Ghost 的 API 文档真是太难产了!不过开源社[...]

理解 React 生命周期方法

发表于:2015-02-02

刚接触 React 的时候就发现了 API 里有一系列的 componentXXX 方法,按照官方文档的说法,这些方法会在「应用程序生命周期的特定时间点」被执行。但是在实际写代码的过程中,这样模糊的说[...]

图解 debounce 与 throttle 的区别

发表于:2015-01-25

在实现一些需要被频繁调用的函数时,我们通常都会使用 debounce 或 throttle 方法。在我的印象中,它们的作用就是减少函数被调用的次数,但具体有什么区别,却真的不能说清楚。 直到最近看了一[...]

为什么 React 这么快?

发表于:2014-12-31

第一次使用 React 的同学都会对 React.js 的文件大小感到隐隐的不安。的确,未压缩的代码有 450KB+,GZIP 后还有近 100KB,这么庞大的库会不会在性能上存在瓶颈呢? 其实在实际[...]

Backbone 源码阅读笔记

发表于:2014-12-24

一直在用 Backbone,却不明白具体的实现。都说 Backbone 的源码好读,因此特意花了一个下午通读一遍。以下为零星笔记: “多此一举”的 ctx 在 Backbone.Events 中绑定事[...]