hax.github.com
hax.github.com copied to clipboard
对于React体系的一点想法
这一年来react和react native火得不行。
我对react其实一直有保留。单看应用框架,我其实更喜欢Angular 2一点。
但是react-style (css in js)秒杀了所有所谓css方法论。尽管我对react-style也仍有保留,但是我确实发现这方案和react是能很好的互相结合解决那些关键痛点的。
这两天我看了尚未release的relay和graphql的介绍,我估计这两个出来会大火!因为也是真解决了工程上的痛点。它做的事情其实好几年前我就想过,但是我只停留在想法,facebook真的实现出来,并且和整个react的体系是一体的。这就是架构能力和工程能力了,不服不行。
所以这样比较下来,A2就差React不少了。毕竟A只是G家的一个边缘项目,而React及其整个体系是F家自己的狗食,投入程度和反馈不是一个级别的。
从整个工程体系上来看,Flux + React/ReactNative + React-Style + Relay/GraphQL,辅以ES6+/JSX/flow等语言设施,几乎已经构成闭环。
不过,这并不代表我要转向React阵营。尽管Facebook看上去确实完成了一个重新定义Web开发(甚至涵盖了移动客户端开发)的壮举,但是我的内心仍然不觉得这是final answer。相比当初jQuery的一统天下,我相信Web应用框架这个大领域的创新还远未结束。
难得抢个沙发。
问题是永远没有 final answer。有如物理学,这么多年了,TOE 并不存在,对 TOE 的追求,可能就是 TOE 本身。无论 G 还是 F,对 UI 组件架构的不断探索追求,也是就是 final answer 本身?
不过还是可能存在一定范畴内的 final answer。把 UI 组件架构的范畴定义缩小,定义清楚,比如定位到二维平面内的基于视觉的(含鼠标、触屏等交互方式)人机交互界面组件实现方式(Web 应用架构太大,缩小到 Web UI 组件实现方式),在这种定义下,很可能有 final answer,目前来看,React 很逼近。
很期待谁来定义清楚问题域,就如前端工程化一样,每个公司谈的都不一样,有些是模块化,有些是工具化,还有些是流程化,等等。Web 应用架构的问题域,UI 组件构建层面,Web Components 尝试给出 final answer,但感觉不是,还不如 React 现实好用。应用架构层面(问题域不清),A2、Flux 都是很不错的尝试。期待更明晰的讨论。
难得抢个二楼。
React声明属View,也有不少案列捣弄出Angular + React,或Backbone + React等等。另外React的产生出于解决DOM操作的瓶颈。所以感觉选择React,不仅仅为了它的开发理念,也需考虑它能解决掉什么问题。
适合的就是最好的,使用了React是因为确实能解决当前的痛点,不过未来前端生态应该回迅速颠覆。
全套的解决方案,各种先进的工程手段,然而用起来语法略有繁杂冗长,看起来 Facebook 几乎没有在简洁性上下过功夫,就是NB的思路,Raw地实现出来——忽然觉得有点像当年的YUI,不知道会不会最终是类似的叫好不叫座,大家纷纷觉得厉害,但是用起来全套的人也并不多。
BTW,Angular 2 相对在简洁方面花了很大力气,A1 有很多神奇特性,同时也露出来不少内部设计细节,看上去就非常黑魔法,A2 基本上把实现细节都隐藏得很好,开放出来的接口更符合直觉,看上去简单很多。
难得抢个五楼。
React 不是 final answer。但是目前来看,在 UI(View)层,React 是最接近 final 的 answer 了。
@justjavac 对我来说,至少vue比react更接近一点点。
难得三年后看到了这篇想法。 想要问一下贺老,现在怎么看呢? 感觉现在有种说不出来的感觉,缺少一种解放劳动力的产物
三年过去了,各大框架都开始拥抱 Web Components 了
四年过去了,感觉 Web Components 还是没有能折腾出来什么花
Web Components 感觉要凉了