- 原文地址:A Real-World Comparison of Front-End Frameworks with Benchmarks (2018 update)
- 原文做者:Jacek Schae
- 譯文出自:掘金翻譯計劃
- 本文永久連接:github.com/xitu/gold-m…
- 譯者:geniusq1981
- 校對者:Hopsken 、zephyrJS
本文是是對 2017 年 12 月發表的 前端開發框架的實戰對比 一文的更新。前端
在對比中,咱們將展現不一樣框架之間去實現幾乎相同的 實戰示例應用 有怎樣的差異。android
實戰示例應用 爲咱們提供了:ios
✅ Angular 沒有用於生產環境。以前實戰應用倉庫列出的示例應用使用的是一個開發版本,感謝 Jonathan Faircloth,它如今已是生產版本!git
✅ Vue 沒有包含在實戰應用倉庫,所以未包括在對比中。正如你能夠想象的那樣,Vue 在前端引發了很大的熱度。怎麼能夠不考慮 Vue 呢?你究竟是怎麼想的?這一次咱們加入了Vue.js!謝謝 Emmanuel Vilsbol。github
和 2017 年 12 月的文章同樣,咱們包含了實戰應用倉庫中列出的全部實現方式。無論它有沒有大量的擁躉,惟一標準就是它出如今 實戰應用倉庫 頁面上。web
前往 github.com/gothinkster… (2018 年 4 月)編程
使用 Chrome 自帶的 Lighthouse Audit 工具進行 首次有效繪製 的測試。後端
繪製速度越快,應用的使用體驗就越好。Lighthouse 也測試 First interactive ,但對於大多數應用來講,這幾乎是相同的,而它還處於測試階段。服務器
首次有效繪製(毫秒)——越低越好網絡
在性能方面你可能不會看到不少差別。
傳輸大小來自 Chrome 的網絡標籤,包含從服務器傳送的壓縮的響應頭和響應正文。
文件越小,下載速度越快(而且須要解析的數據也越少)。
這取決於你的框架以及你添加的依賴庫的大小,還有你的編譯工具的好壞也有必定影響。
傳輸大小(KB)——越低越好
您能夠看到 Svelte,Dojo 2 和 AppRun 作得很是好。我不能說 Elm 也表現足夠好——特別是當你看下一張圖時。我也想看看 Hyperapp 的表現。可能下次吧,Jorge Bucaran ?
經過 cloc 咱們計算每一個倉庫的 src 文件夾中的代碼行。空白和註釋行不會包含在內。這樣作的意義何在?
若是調試是刪除軟件錯誤的過程,那麼編程就是引入錯誤的過程 — Edsger Dijkstra
您擁有的代碼行數越少,那麼出現錯誤的機率就越小,並且你也只須要維護較小的代碼庫。
我想說,很是感謝 Eric Simons 建立了 實戰示例應用 ,還有大量的提供不一樣實現的貢獻者們。
更新: 感謝 Jonathan Faircloth 提供生產版本的 Angular。
若是你對這篇文章感興趣,你能夠在 Twitter 和 Medium 上加我。
若是發現譯文存在錯誤或其餘須要改進的地方,歡迎到 掘金翻譯計劃 對譯文進行修改並 PR,也可得到相應獎勵積分。文章開頭的 本文永久連接 即爲本文在 GitHub 上的 MarkDown 連接。
掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 Android、iOS、前端、後端、區塊鏈、產品、設計、人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃、官方微博、知乎專欄。