先說觀點,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 性能好 + 單向數據流應對複雜度,對其本質殊不知其因此然...)