前后端分離的好處是什么?
成本
首先是后端要對接多種類型的客戶端,除了前端,還可能會有小程序和app,這樣后端只寫一套接口即可。
其次,前端的框架開發(fā)效率很高,方便實現(xiàn)較為復雜的功能,傳統(tǒng)的前后端結合是非常麻煩的,尤其是頁面局部刷新比較多的情況下。
管理方面,很多時候一些 ui 上的細節(jié)優(yōu)化,只要不涉及接口,只更改前端就可以了,前端可以隨時單獨更新,服務不需要中斷。
性能
除了成本方便的好處外,前后端分離還大大提升了性能。
由于前端是獨立的,純靜態(tài)的,這樣就可以上cdn 加速,讓訪問速度變快。
傳統(tǒng)的后端模板來渲染頁面的方案,要做代碼壓縮是很麻煩的,在瀏覽器查看頁面源代碼是可以看到前端的源碼的。而現(xiàn)在的前端代碼打包器都自帶了混淆壓縮功能,保護源代碼的同時也讓代碼體積變小,訪問速度更快。
前端 spa 應用使用路由組件來模擬跳頁,不會真正的刷新頁面,所以在首次加載成功后,后面每次打開別的頁面都很快。
缺點
前后端分離的情況下,大多前端都是做成 spa 的,因為這樣開發(fā)成本低,多頁面會麻煩一些。但是 spa 由于是將所有代碼打包成一個 js ,首次加載可能會慢。很多前端打包器都有分塊的功能,可以將頁面異步加載來緩解。當然,還可以使用 pwa 相關技術來做緩存。
由于頁面的內容是由前端渲染的,所以整個頁面是沒有多少文檔信息的,全靠 app.js 在運行時動態(tài)插入文檔,這樣就無法做seo了。好在搜索引擎也在升級,現(xiàn)在的搜索引擎都很智能,親測必應搜索是可以支持的。
總結
如果業(yè)務上沒有什么硬性要求,推薦前后端分離,將前端做成 spa 。