前端框架+ssr 比直接用后端的模板有什么优点么 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xcstream
V2EX    前端开发

前端框架+ssr 比直接用后端的模板有什么优点么

  •  
  •   xcstream 2020-04-28 18:10:20 +08:00 1323 次点击
    这是一个创建于 1990 天前的主题,其中的信息可能已经有所发展或是发生改变。

    5 条回复  
    dcalsky
        1
    dcalsky  
       2020-04-28 18:24:06 +08:00 via Android
    优点是可以用前端框架 你自己说了
    jimliang
        2
    jimliang  
       2020-04-28 18:28:25 +08:00
    js/ts 一套带走
    richangfan
        3
    richangfan  
       2020-04-28 18:30:18 +08:00 via Android
    增加了前端的话语权
    WittBulter
        4
    WittBulter  
       2020-04-28 19:16:38 +08:00   1
    区别很大,从性能到体验都不一样。
    如今的 SSR 框架不仅是在做以前 Server Template 做的工作,更多的还承载了优化、切割、用户体验、开发者体验等多个方面。很多人并没有深度实践,只是想当然的认为这是前端搞事,没有什么实际价值。实际上 SSR 可以做的事情非常多:

    1. SSR 可以在不改动代码的前提下自动最小化渲染首屏。传统的服务端模板渲染想要做到这一点的工作量非常非常大,要对 Javascript 做切割,这不是简单的切割还要考虑工具函数、依赖包、样式代码块的体积分配,即便你粗暴的以最低 HTML 渲染出了首屏,也并不一定是可交互的、并不能完全避免 reflow 、保证共享资源的缓存等。

    2. SSR 极大的提高了服务端直出的开发者体验。拿 Next.js 和传统的 JSP 距离来说,如果你的首屏资源涉及纯静态 (打包时插入的可配置文本资源)、纯动态 (第三方持久化存储数据资源)、按路由首屏不同的的静态动态混合资源这些问题时,JSP 不是不能完成,但代价太高,你需要在完成上诉第一条的同时解决这些所有问题,代码也非常难以维护,甚至需要多种脚本插入。但 Next.js 几乎不用改变代码、仅仅是加几个函数就可以轻松的解决这些难点。

    3. SSR 不会脱离你的生态圈。SSR 框架一般依附于某一个前端框架或库的生态系统,不改变你的代码很大程度上不会降低你对生态系统的依赖,这在复杂的需求时可以极大的提高开发体验。

    4. 更高的缓存利用率。服务端模板直出的项目意味着你每个 Base HTML 都是 0 缓存的,因为需要通信才能确定页面是否有动态内容。但大多数 SSR 框架都可以做到在无第三方资源插入时自动静态优化首页为高缓存页面。我不是说 JSP 之类的技术无法完成这件事,但就目前看来,似乎没有任何一个项目是针对此做过优化的,也没有任何与之相关的生态。

    ----

    当然如果你的页面足够小,或者是完全不考虑性能和体验时这些技术是没有太大区别的,SSR 的优势在你不关注任何技术优势和体验时是无法直观感受的,如果只是做一件事实现了功能,那么都一样。但我敢保证,即便是优化的非常彻底的服务端直出,在正确科学的迁移到 SSR 之后仍旧能获得巨大的提升 (多方面的)。
    lneoi
        5
    lneoi  
       2020-04-29 09:27:10 +08:00
    前后端代码混杂在一起不利于维护,也不利于分工,体量大了起来分工干活很重要
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5296 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 45ms UTC 09:07 PVG 17:07 LAX 02:07 JFK 05:07
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86