先说观点,React/Vue 和 Cycle 一块儿用是不太合理的,由于 Cycle 自己定位是框架,定义了整个应用的代码组织方式和开发范式,那就是不管是用户事件处理仍是服务端数据同步,通通用 Rx 来作,Cycle 本身也提供了偏好的 view layer(基于 virtual-dom 的 DOM driver)。总的来讲 Cycle 的范式侵入性很强,属于要么不用要用就得全盘接受 Rx for everything 的理念。我自己对于这个理念持保留态度,同时目前尚未看到过大型 Cycle 应用的例子,那么天然对于 Cycle 到底好很差用,也是持保留态度。git
另外一方面,在 React/Vue 应用中部分使用 Rx 是彻底没有问题的。思路上来讲就是把 React/Vue 组件的 local state 当作一个『中介』,在一个 Rx Observable 的 subscribe 回调里面更新组件状态。经过简单的绑定库支持,能够彻底把 component state 做为一个实现细节封装掉,实现 Observable -> view 的声明式绑定。参考:github
- Vue + Rx: https://github.com/vuejs/vue-rx/
- React + Rx: GitHub - belfz/fully-reactive-react-exampleweb
我我的倾向于在适合 Rx 的地方用 Rx,可是不强求 Rx for everything。比较合适的例子就是好比多个服务端实时消息流,经过 Rx 进行高阶处理,最后到 view 层就是很清晰的一个 Observable,可是 view 层自己处理用户事件依然能够沿用现有的范式。编程
---redux
题外话, 前端工程师
的答案拿 Vue 说事,而后说不可避免会遇到『性能墙』问题,而 Virtual DOM 是 React 对『性能墙』的解决方案,我只能说这个见解基本属于对 Virtual DOM 理解停留在宣传层面的水平。详见
网上都说操做真实 DOM 慢,但测试结果却比 React 更快,为何? - 尤雨溪的回答。
而关于『复杂度墙』,则要么是对『单向数据流』的理解停留在宣传层面,要么是对 Vue 的了解有限(不了解您能够少说两句)。React 若是没有 Flux,其实也是依赖 component local state。React + Redux 作的事情说到底就是把应用状态从组件自己隔离出去统一管理,这种思路
并非只有 React 能作到,只要有个声明式的视图层就好了。这也是为何 Redux 是 view-layer agnostic,Vue,Angular 2 都有配合 Redux 使用的例子,Vue 本身也有专属的状态管理方案 Vuex。(这些话我其实在知乎重复过好几遍了,只是太多人被 FB 的宣传洗了脑,说 React 必提 virtual dom 性能好 + 单向数据流应对复杂度,对其本质殊不知其因此然...)