做者:Teeea
連接:https://www.zhihu.com/questio...
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。前端
運行速度有許多網站都有對比,不過就具體的數值來講,差很少能夠認爲是沒有比較價值了。各框架在最佳實踐下運行速度都不會成問題,甚至於廣受詬病的Angular1都不見得會有大問題。不過有些小問題仍是要注意一下的。好比說angular你得避免頻繁觸發的事件被zone託管到。react的富文本也須要注意一下,託管輸入什麼的我搞不懂,emmmmmm……反正知乎超級卡……
開發速度方面。會形成影響的變量至關多。好比說react你想本身搭一套帶ssr、路由懶加載的架子,多半會直接累死,其餘家也都差很少。我經歷的項目裏,開發速度很大程度取決於選用的是什麼腳手架……就目前的體感來講,用起來最舒服的算是vue的nuxt了,大部分事情都幫你處理好了。angular的cli工具也不錯。react的社區最活躍工具最多,因而……天秤座人士對react社區表示強烈譴責。
由於恰巧三個框架都用過一點點,因此說一下個人感受吧,可能不對……React的單函數組件真的是很是的乾淨,是能讓人感到開心的東西。有些時候從一個項目移到另外一個項目都沒有成本的。思路清晰,引用方便,我以爲能提升開發效率。Redux和Vuex這類的東西,寫起來是有點繁瑣的。可是調試時又是另一種狀況了,打開調試工具,讀一下那些action,很是迅速的就能定位到bug。繁瑣之處能夠考慮本身封裝一套decorator之類的,雖然好像各個平臺的實現和ES的標準都有些出入,可是真的能提升效率。前端頁面複雜了就是各類狀態值滿天飛,指不定何時就組合出了一套bug……
Angular是規定得最死的一套框架。初學的感受就是「繁瑣到上天」,但這其實是個假象……cli很方便,規定得死也就意味着你們寫的代碼看上去風格更統一,這真不是壞事。只要你想認真作項目,前期一點點的學習成本仍是值得回票價的。
Vue若是使用單文件組件的話……當心文件大小,超過500行就及時拆分吧,等代碼行數漲到一千以上時就幹啥都晚了……由於Vue的data、computed、method、watch之類的東西是拆分開的,很容易相關聯的數據、函數之類的東西,被打散分散在不一樣的地方,那種絕望是沒有體驗過同事寫的兩千多行的超大頁面的人沒法想象的。
用React的別笑,上面那一條對React的JSX也有效……若是是redux的用戶,你還得考慮作connect的粒度。粒度太粗組件間傳遞數據很麻煩,粒度太細……其實你沒發現context和全局對象是差很少的概念嗎,雖然React對context作了許多限制,可是效果並不以爲好……組件庫是框架的重要加分項,React優點很大,能夠一波A過去…用好Typescript能夠極大提升你的開發效率,這個不是開玩笑的。尤爲是你同時接了幾個項目的維護,想要跪在地上哭嚎「人腦記憶力是有極限的啊!」的時候。這一點上Angular加分應該很大。總以爲React開發時,編輯器的響應速度更快……也多是錯覺。
最後一提,其實維護階段極可能會比開發階段更長更持久,談「開發速度」時不把維護算進去是有些不合理的。一個組件、一個模塊能不能從一處摘下來、隨手插到別的地方很輕鬆就跑起來,過一段時間能不能輕鬆讀懂,是否是能避免各類魔法字符串……這些反而是真正開發中比較須要關注的細節……至少對我來講是這樣。vue