对js和css的使用选择。
这部分我提前预警,这是我自己的看法,不一定是正确的,大家互相讨论。
我的想法是不使用目前那些主流的移动端框架,选择手写。我会说为什么。
比如jq mobile,zepto,backbone,angular,还有类似工具集,underscore,一些动画框架,还有小型的游戏框架,统统其实是不太需要的。
我并不是说他们不好,而是这些对于新手来说,只能是阵痛药,而不是万能药。为什么呢,移动端的优化很大的一个瓶颈就是网络加载速度不一致,有wifi,有3g,有4g,还有2g。代码量在移动端开发是很大的一个考察点。
我们反观这些框架:zepto最先说,你用它做什么?动画?选择器?事件委派?基于zepto的插件?可能大部分人就是用个选择器吧。但是移动端的原生选择器方法应有尽用,原生的完全够用,包括事件和委派,一共写起来不超过10几行的东西,引入一个框架不值得。再说mvc的框架,如果不使用离线存储,我是反正不敢想没wifi的情况下体验如何,外加移动端真的是否需要分层这种处理不说,主要还是看业务场景。
套壳的那种上面说了,框架随便用,因为足够复杂,但是普通移动端开发,我个人是不推荐使用的,可以直接上原生的来写,最多来一个模块化工具。我下面就说说自己是怎么做的吧。
手机端对ES5的特性已经全部都支持的很好了,参考:
xiaojue/ES-shim · GitHub
这里的api特性,只实现了一部分,但是其实平时对数据的处理,对象的处理,已经完全足够。我不说优缺点,我只说,移动端这些都是纯天然的而已。
然后是我们对手势的处理,zepto中有几个很有用的事件,swipe,swipeLeft,right,up,down,一类的,还有tap,我们可以看下zepto的源码:
zepto/touch.js at master · madrobby/zepto · GitHub
我们真的所有场景都需要所有的功能么,tap,doubletap,有多少人用了。。用到的时候,也是非常好实现的功能。我推荐直接手写,或者自己写一个swipe的基类,也不会比zepto的touch.js多太多,而好处是我们可以让它贯穿我们的项目,作为一个base类使用,当然我不是喷zepto多余,它很多代码做了兼容处理,但是就目前我们的业务来说,我们只需要考虑webkit,只需要考虑
|
|