我们不背诵 API,只实现 API

2019-05-24
阅读 14 分钟
3k
有不少刚入行的同学跟我说:“JavaScript 很多 API 记不清楚怎么办?数组的这方法、那方法总是傻傻分不清楚,该如何是好?操作 DOM 的方式今天记,明天忘,真让人奔溃!”

四年前端狗,面试被虐,如何翻身?

2019-04-25
阅读 3 分钟
3.3k
课程链接 课程抢先看 课程亮点 36 个热点主题 50 讲系统性整理输出 在实战演练中掌握前端知识和编程技巧 面试切入,立体分析高频考点及其底层原理 课程介绍 作者 LucasHC(侯策),作为资深 Web 开发工程师和具有多年宝贵经验的面试官,系统梳理了前端开发核心知识脉络,同时立体剖析了前端开发进阶的方方面面,旨在帮读...

结合 Google quicklink,react 项目实现页面秒开

2018-12-17
阅读 3 分钟
4.4k
对于前端资讯比较敏感的同学,可能这两天已经听说了 GoogleChromeLabs/quicklink这个项目:它由 Google 公司著名开发者 Addy Osmani 发起,实现了:在空闲时间预获取页面可视区域内的链接,加快后续加载速度。如果你没有听说过 Addy Osmani 大神的名号,但对于他的多篇演讲或文章:

React 进阶设计与控制权问题

2018-09-12
阅读 8 分钟
2k
控制权——这个概念在编程中至关重要。比如,“轮子”封装层与业务消费层对于控制权的“争夺”,就是一个很有意思的话题。这在 React 世界里也不例外。表面上看,我们当然希望“轮子”掌控的事情越多越好:因为抽象层处理的逻辑越多,业务调用时关心的事情就越少,使用就越方便。可是有些设计却“不敢越雷池一步”。“轮子”与业务在...

漫谈前端性能 突破 React 应用瓶颈

2018-08-14
阅读 7 分钟
5.2k
性能一直以来是前端开发中非常重要的话题。随着前端能做的事情越来越多,浏览器能力被无限放大和利用:从 web 游戏到复杂单页面应用,从 NodeJS 服务到 web VR/AR、数据可视化,前端工程师总是在突破极限。随之而来的性能问题有的被迎刃而解,有的成为难以逾越的盾墙。

探索 Redux4.0 版本迭代 论基础谈展望(对比 React context)

2018-04-24
阅读 9 分钟
2.2k
Redux 在几天前(2018.04.18)发布了新版本,6 commits 被合入 master。从诞生起,到如今 4.0 版本,Redux 保持了使用层面的平滑过渡。同时前不久, React 也从 15 升级到 16 版本,开发者并不需要作出太大的变动,即可“无痛升级”。但是在版本迭代的背后很多有趣的设计值得了解。Redux 此次升级同样如此。

React 设计模式和场景分析

2018-04-19
阅读 6 分钟
7.4k
这一周连续发表了两篇关于 React 的文章: 组件复用那些事儿 - React 实现按需加载轮子 React 应用设计之道 - curry 化妙用 其中涉及到 React 组件复用、轮子设计相关话题,并配合相关场景实例进行了分析。这些内容都算是 React 设计模式,一提到 Design Patterns,读者大可不必恐惧,事实上这都是 React 开发应用灵活性...

React 应用设计之道 - curry 化妙用

2018-04-18
阅读 7 分钟
3.9k
使用 React 开发应用,给予了前端工程师无限“组合拼装”快感。但在此基础上,组件如何划分,数据如何流转等应用设计都决定了代码层面的美感和强健性。

组件复用那些事儿 - React 实现按需加载轮子

2018-04-17
阅读 8 分钟
7.2k
组件化在当今前端开发领域中是一个非常重要的概念。著名的前端类库,比如 React、Vue 等对此概念都倍加推崇。确实,组件化复用性(reusability)和模块性(modularization)的优点对于复杂场景需求具有先天优势。组件就如同乐高积木、建筑石块一般,一点点拼接构成了我们的应用。

EventEmitter:从命令式 JavaScript class 到声明函数式的华丽转身

2018-04-10
阅读 7 分钟
2.2k
相信“函数式”这个概念对于很多前端开发者早已不再陌生:我们知道 JavaScript 是一门非常灵活,融合多模式(multiparadigm)的语言,这篇文章将会展示 JavaScript 里命令式语言风格和声明式风格的切换,目的在于使读者了解这两种不同语言模式的各自特点,进而在日常开发中做到合理选择,发挥 JavaScript 的最大威力。

教你编写 Node.js 中间件,实现服务端缓存(附demo源码)

2017-09-06
阅读 3 分钟
6.5k
Express 作为 Node.js 的框架,如今发展可谓如日中天。我很喜欢其灵活、易扩展的设计理念。尤其是该框架的中间件架构设计:使得在应用中加入新特性更加标准化、成本最小化。这篇文章,我会尝试编写一个非常简单、小巧的中间件,完成服务端缓存功能,进而优化性能。

JS冻结对象的《人间词话》 完美实现究竟有几层境界?

2017-06-06
阅读 7 分钟
3.4k
这篇文章由浅入深讨论JS中对象的一些锁定特性。但都是一些基础语法的实现,相信即便是前端小白也可以大体领会。不过需要读者预先了解JS中对象的特性,尤其是对象自身属性的描述符:configurable、writable...

解析Twitter前端架构 学习复杂场景数据设计

2017-04-27
阅读 4 分钟
4.9k
前几天刷Twitter,发现Nicolas(Engineering at @twitter. Technical Lead for Twitter Lite)发布了这么一条推文:

ES6 Async/Await 完爆Promise的6个原因

2017-04-14
阅读 6 分钟
45.7k
自从Node的7.6版本,已经默认支持async/await特性了。如果你还没有使用过他,或者对他的用法不太了解,这篇文章会告诉你为什么这个特性“不容错过”。本文辅以大量实例,相信你能很轻松的看懂,并了解Javascript处理异步的一大杀器。

关于数组乱序的深挖——“感觉一直在写毒代码”

2017-04-13
阅读 10 分钟
4.7k
将一个数组进行乱序处理,是一个非常简单但是非常常用的需求。比如,“猜你喜欢”、“点击换一批”、“中奖方案”等等,都可能应用到这样的处理。包括我自己在写代码的时候,也确实遇到过。一般比较经典且流行的方案为:对对象数组采用array.sort()方法,并传入一个比较函数(comparison function),这个比较函数随机返回一个...

面试题目别有洞天 -> 从es6优雅解法,到降级polyfill,再到redux reducer迷之命名

2017-03-09
阅读 4 分钟
3.6k
从解这道题目出发,我会谈到数组的Reduce方法,ES6特性和Redux数据流框架中Reducer的命名等等。一道典型的题目,却如唐代诗人章碣《对月》诗中所云:“别有洞天三十六,水晶台殿冷层层。”

设计无限滚动下拉加载,实践高性能页面真谛

2017-02-28
阅读 12 分钟
19.1k
无限滚动加载在互联网上到处都有应用:豆瓣首页是一个,Facebook的Timeline是一个,Tweeter的话题列表也是一个。当你向下滚动,新的内容就神奇的“无中生有”了。这是一个得到广泛赞扬的用户体验。

揭秘babel的魔法之class继承的处理2

2017-01-16
阅读 5 分钟
3.1k
再啰嗦一句,这一系列的文章并不是科普ECMAScript新规范。她的意义在于分析Babel对ES6的编译,从而希望读者对JS语言基础,程序设计理念等有更深刻的认识。