用react差不多三个月了吧,断断续续的写了几个小项目,感觉美美哒。作为自我总结,也为其他新人指南,特此发一篇。
首先
你得搞清楚,你处在的时代。别给我说你没听过JS,也别说jQuery不熟,对了,还有ajax。这些已经算是这个时代前端开发人员的基本功了。
当然,仅仅会了这些,还差得远。各种css库,JS库和框架,ajax库,你多少也得略知一二吧,搞清楚什么叫浏览器兼容性,什么叫事件,什么是回调,还有响应布局啊乱七八糟的。
哎哟不错,掌握了这些小九九,你体内的查克拉就差不多了。接下来要面对的,就是前端工程化问题。说白点,就是你可能不光要能做出来,还得做的高效。
新概念
前端技术这些年真心不让人省心,几乎每时每刻都可能会发生点改变世界的事儿。你可以看一下github上的js项目,当然还有npm里。说到npm,自然又会扯出nodejs。唉,心塞啊。好像自己这几年积累的开发经验,都是围绕着js打转转。
那这些就是新概念么?其实也不算,css3,html5,es6,es7,这些概念有的已经快好几年了,至今仍未彻底落地。但身为前端,你却不能不去掌握它们,因为你会从中感受到优雅,感受到强大。
react
各大技术社区,充斥着react的身影,这也让facebook开源套件获得了越来越高的曝光率,react生态系统以迅雷不及掩耳盗铃之势,超越了神圣的angularJS,这让我这个老ng粉儿感叹世事无常啊。
不过react却真如它所说,确实以新的理念为开发者带来了大道至简的哲学。至少对我来讲,曾经头疼于如何给团队讲解ioc,讲指令,现在这些复杂概念不需要了(对于新手来讲)。开发人员只需要对组件,模块有些许的认知,就可以动手干了!
react组件的生命周期,是每一个使用者无论如何都一定要花时间提前掌握的,不然别说你懂react,最好都别说你听说过它!
工程化
前端工程化的概念,随着一大堆构建工具,也慢慢的被大家所认可,BAE的前端研发团队各自有响应的一套解决方案。当然,开源界在这一方面一点也不含糊,前端构建工具多的你都来不及用,可能它就已经消失了。
react的世界里,有webpack,有babel,这些林林总总的强大猛兽,让开发者战无不胜。你还在等什么?
移动
我并不会开发移动端app,这一点也已经给我带来了感受得到的机会流逝,但我骨子里却无法磨灭一个想法,我一直非常的看好web,十几年前,软件都是安装在pc上的,就好像今天安装在手机中的app一样。但,这不是常态,web才是互联网的常态,我相信不出几年,app的概念也会不见,web大统!
这也是像google这样的科技巨头一直在努力的方向。
落地
扯蛋时间结束了,说点干货。
react只是一个近乎完美的view,它自己也这么说。你肯定还需要点儿别的,我之前的文章也反复强调过这一点了。相信你很容易就能找到各种缺少的组件,当然你也可以尝试一下我找到的一个脚手架: react_scaffolding 。
它已经把react,react-router,redux,immutable,superagent等组装好了,开箱即用。当然,并不能说这就是最佳组合了,我相信还有更好的。
支持react的ui也越来越多,像之前推荐的妹子ui,还有阿里蚂蚁开发的ant,都非常优秀。但这里需要叮嘱的是,随着react0.14+的发布,独立了dom相关的操作,这让部分ui库不再可用,选择的时候一定要注意啊。
另外,es6的class语法,并不支持react曾经推从的mixins哲学,当然,你依然可以用es5的语法来使用mixins,这一点也不难。
组件之前的通信方式也有一大堆,但有时候你还是不得不跳出react,不过没关系,CustomEvent应该可以帮到你。
我还想说,一直都挺希望路由配置可以去中心化,这一点 react-router 也可以很好的帮你搞定。
其实,上面推荐的那个脚手架,在实际项目开发时,还是无法避免大量的样板代码,比方说你写reducer和api的地方,如果能利用代理或工厂模式动态创建相关逻辑,那也是极好的。
最后,思考了十分钟,确实想不到还要说点啥了,那就到此为止吧。