首先react通過介紹新的聲明式語法JSX來重新定義視圖開發,優點其實官網就有,不過我可以簡單說兩句:
第一,學會了react以及這個JSX語法,你不光可以通過react寫web;也可以通過react-native寫ios或者android的應用;甚至可以通過react-blessed寫terminal可視化應用;當然也可以通過react-native-desktop寫桌面應用。因為JSX這種聲明式語法實際是在構建一個抽象的視圖層,這種抽象可以通過不同適配器適配到各種顯示終端,這總夠屌吧?
第二,說回到web版的react,她有virtual dom,這個東西的好處是減少DOM操作,減少DOM操作的目的是提高瀏覽器的渲染性能,這聽起來也夠屌吧?
第三,她倡導使用flux模式來進行組件間數據傳輸,這種做法叫unidirectional data flow(單向數據流),單向數據流的好處是與之前angularJS提出的two-way data binding相比較而言,因為單向,所以各種變化都是可預計、可控制的。不像two-way data binding那樣,變化一但復雜起來,大家都互相觸發變化,到最后一個地方變了,你根本猜不出來她還會導致其他什么地方跟著一起變。這個需要大量實踐才能有所感受,如果你初學,那聽聽就算了,不必死磕。
第四,她倡導使用immutable object(不可變數據),不可變的好處是大大節約了臟檢查的消耗,有興趣可以看我翻譯的[譯]JavaScript中的不可變性(Immutability)
可能還有其他,不過我現在能想到就這些吧,是否符合你自己預期,自己多實踐,有了心得之后再來回顧這些好處更有價值