链接:
https://www.zhihu.com/question/29380608/answer/130729912
UI 轮子
轮播、Tab、懒加载……
照着饿了么UI库、Bootstrap 挨个实现就好。
做这种轮子比较考验 CSS 功力,你需要用尽量少的代码适应尽量多的场景。
流行 UI 模式的实现瀑布流、视差滚动、fullpage等。
原理简单又炫酷,何乐不为。
DOM 操作的轮子
实现得最好的当然就是 jQuery。
由于 jQ 这么流行,所以你实现的结果很可能跟 jQ 的 API 一模一样。
因此现在很少有人造这个轮子,但是在十年前,大家都是在早 DOM 轮子。
这要求你对 DOM 和 API 设计有很多经验。
至于 Virtual DOM,你可以在某种程度上认为是一种 DOM API 的封装,不过它的难点其实不在这里。
JS 缺失的标准库的实现
Date 很烂,所以有了 Moment
Array 很烂,所以有了 Underscore Lodash
JS 没有加载器,所以有了 require.js 等
JS 自定义事件不好用,所以你可以自己造一个
有的浏览器不支持 ES5,所以有了 es5shim。
模板引擎……
就一个正则替换还好意思叫引擎,实现这种轮子的第一要务是如何给出漂亮的 debug 信息,至于渲染速度的,我认为只能排在第二位。
框架轮子
MVC 可以造轮子,虽然不流行了,但对老项目很有用。MVVM 在不考虑 IE 的前提下造一个轮子也绝非难事。FLUX 单向数据流的轮子就更好造了。工程化轮子现在搞前端不会工程化怎么行。
基于 Gulp 做一套自动化构建尽显逼格。
所以你看,前端搞了这么多年,只不过就是每年把上面轮子重新造一遍而已