前后端分离的好处是什么?
成本
首先是后端要对接多种类型的客户端,除了前端,还可能会有小程序和app,这样后端只写一套接口即可。
其次,前端的框架开发效率很高,方便实现较为复杂的功能,传统的前后端结合是非常麻烦的,尤其是页面局部刷新比较多的情况下。
管理方面,很多时候一些 ui 上的细节优化,只要不涉及接口,只更改前端就可以了,前端可以随时单独更新,服务不需要中断。
性能
除了成本方便的好处外,前后端分离还大大提升了性能。
由于前端是独立的,纯静态的,这样就可以上cdn 加速,让访问速度变快。
传统的后端模板来渲染页面的方案,要做代码压缩是很麻烦的,在浏览器查看页面源代码是可以看到前端的源码的。而现在的前端代码打包器都自带了混淆压缩功能,保护源代码的同时也让代码体积变小,访问速度更快。
前端 spa 应用使用路由组件来模拟跳页,不会真正的刷新页面,所以在首次加载成功后,后面每次打开别的页面都很快。
缺点
前后端分离的情况下,大多前端都是做成 spa 的,因为这样开发成本低,多页面会麻烦一些。但是 spa 由于是将所有代码打包成一个 js ,首次加载可能会慢。很多前端打包器都有分块的功能,可以将页面异步加载来缓解。当然,还可以使用 pwa 相关技术来做缓存。
由于页面的内容是由前端渲染的,所以整个页面是没有多少文档信息的,全靠 app.js 在运行时动态插入文档,这样就无法做seo了。好在搜索引擎也在升级,现在的搜索引擎都很智能,亲测必应搜索是可以支持的。
总结
如果业务上没有什么硬性要求,推荐前后端分离,将前端做成 spa 。