前些日子看JQuery的源码。
初始从头开始读,看到ecah、isFunction这些还好,直到Sizzle便觉得不知所以。
思前想后可以从常用的API开始,却遇到access、domManip、buildFragment之流,参数复杂,不结合具体应用情况难以搞懂某一分支的意义。
上述过程收获颇丰,感叹框架底蕴之深,对原生运用之强。
再往后深入,变剩下动画、事件、选择器等大模块了,以动画为例,因为缺少使用原生js实现动画的经验,对于内部的设计思想无法体会,看了很多前辈写的文章,也是勉强学到一点。
至此源码阅读之路要结束了,自己仍要多做事情才能真正读懂,才能有所共鸣。
在我阅读源码的过程中,也感受到了很多痛楚。
比如,JQuery一个函数通过判断不同的传参方式来决定处理形式,这使得API的个数大量减少,却也让使用方式变得难于记忆和发现,一个表单元素,$element.val([1])可以用来选中,一个div可以用$element.css("width",“+=20”)在原有的宽度上增加20px,我觉得用一个新的API会更好,开发人员通过API的名字就知道用途了。
后来学习了webpack、gulp想用在项目上。来解决繁琐、重复的事情。
最后发现,我自写一个node脚本便可以解决了,在我看来,打包不应在开发过程中就进行,这样影响效率,而且webpack本身需要项目符合一定的规范,对于一开始没有用webpack的项目,gulp会更好一些。
开发过程中,可以用nginx实现本地服务器以及请求转发,chrome自带的文件映射功能实现热模块替换,chrome自带的禁用缓存功能。
webpack文档上提出的概念给了我很大的启发,比如在开发过程中,只需要让改变的文件重新请求就可以了,觉得可以写一个node脚本解决一下。
写这篇文章是想警惕自己,不要被框架、工具束缚,要敢于尝试,多动手实践,去感受痛楚。
其实,一直寻找的美好从我们打算向前的那一刻就开始了,感恩生活的每一种味道,毕竟,一辈子那么短。











网友评论