求问各位聚聚,前端各个等级有哪些轮子的实现思想以及架构是十分经典且值得学习的呢?又有什么轮子比较适合前端初心者练手呢
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
我觉得有规范的技术造轮子的价值很高。AMDCMDpromises/A+基于规范去实现。而且规范应该都有test,也可以很好的评价自己的实现是否完善,准确。理解了规范,你学习的成本也会很低。假设你理解了promises/A+规范,学习任何一个基于该规范实现promise库都几乎不需要成本。遇到的问题也很容易解决。
你只要去实现那些每年被重新实现过一遍的轮子就行了。
UI 轮子轮播、Tab、懒加载……照着饿了么UI库、Bootstrap 挨个实现就好。做这种轮子比较考验 CSS 功力,你需要用尽量少的代码适应尽量多的场景。流行 UI 模式的实现瀑布流、视差滚动、fullpage等。原理简单又炫酷,何乐不为。DOM 操作的轮子实现得最好的当然就是 jQuery。由于 jQ 这么流行,所以你实现的结果很可能跟 jQ 的 API 一模一样。因此现在很少有人造这个轮子,但是在十年前,大家都是在早 DOM 轮子。这要求你对 DOM 和 API 设计有很多经验。至于 Virtual DOM,你可以在某种程度上认为是一种 DOM API 的封装,不过它的难点其实不在这里。JS 缺失的标准库的实现Date 很烂,所以有了 MomentArray 很烂,所以有了 Underscore LodashJS 没有加载器,所以有了 require.js 等JS 自定义事件不好用,所以你可以自己造一个有的浏览器不支持 ES5,所以有了 es5shim。移动设备需要滑动事件,你来造一个轮子吧。模板引擎……就一个正则替换还好意思叫引擎,实现这种轮子的第一要务是如何给出漂亮的 debug 信息,至于渲染速度的,我认为只能排在第二位。框架轮子MVC 可以造轮子,虽然不流行了,但对老项目很有用。MVVM 在不考虑 IE 的前提下造一个轮子也绝非难事。FLUX 单向数据流的轮子就更好造了。工程化轮子现在搞前端不会工程化怎么行。基于 Gulp 做一套自动化构建尽显逼格。所以你看,前端搞了这么多年,只不过就是每年把上面轮子重新造一遍而已
我觉得有规范的技术造轮子的价值很高。
AMD
CMD
promises/A+
基于规范去实现。而且规范应该都有test,也可以很好的评价自己的实现是否完善,准确。
理解了规范,你学习的成本也会很低。
假设你理解了promises/A+规范,学习任何一个基于该规范实现promise库都几乎不需要成本。遇到的问题也很容易解决。
你只要去实现那些每年被重新实现过一遍的轮子就行了。
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 做一套自动化构建尽显逼格。
所以你看,前端搞了这么多年,只不过就是每年把上面轮子重新造一遍而已