他們都是FRP(官能團反應性編程)在他們的核心 - 這意味着他們有一棵樹映射到DOM,並只渲染該組件或需要渲染的子組件。(正如前面有人指出的,Elm已經放棄了FRP原則來追求自己的想法)
它們都在JavaScript中編譯(儘管使用ClojureScript/Om庫或Reagent,您可以在您的js中獲得實際的React對象)white榆樹自己的事情。我不喜歡榆樹必須通過NPM安裝,雖然czapliki據我所知是在一個獨立的安裝程序)
榆木在我看來更好,因爲它管理狀態更多一些編碼友好,它有一個很好(如前所述 - )類似於Haskell的語法,還可以將RuntimeErrors移入CompileTimeErrors中,作爲開發人員,這會更加令人滿意 - 而且它具有更簡單的代碼可維護性。另一方面,cljs有很多庫 - 其中一些正如我所提到的那樣返回實際的React組件(cljs/Om與rjj LifeCycle的1:1匹配) - 其他人只是尊重FRP和LifeCycle的心態而不被設計通過它。可能希望通過調用端點數據的GraphQL方法來查看Om/Next,並刪除了在純cljs/Om中使用的異步chans。
這是一個誠實的問題,但我一個人會喜歡埃爾姆(用兩種語言寫的)。 然而,如果你這樣做,請確保你有一個很好的圖書館,不要在香草cljs做東西,或者當你想維持5k + LOC時,你會後悔的(查看Fulcro,Reagent,om,OmNext,hoplon等等)
這個問題可能會提供一些幫助:http://stackoverflow.com/q/15490053/90874 – thSoft