V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
echo0x000001
V2EX  ›  问与答

这些年 web 前端的发展方向是不是偏了?

  •  
  •   echo0x000001 · 2024-03-19 10:35:07 +08:00 · 4358 次点击
    这是一个创建于 372 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以下说一下我的感触。

    1. 服务端渲染 -> 客户端渲染 -> 服务端渲染

      • 以前( 8 年前?)的 web 页面基本上都是服务端渲染,然后陆续出现了 angular 、vue 、react 这些框架,使服务端渲染的开发模式转变为客户端渲染的开发模式,到如今又开始推崇服务端渲染的模式( react nextjs )。一个轮回下来,本质没有发生改变,变化的是前端工程化介入,但脱离这些框架,难道就没法使用前端工程化来提升传统服务端渲染前端开发效率了吗?答案是可以的。
    2. 框架与生态

      • angularjs react vue 三个框架包括新出的一些框架, 每个框架都有自己的生态,一旦换一个框架,其 UI 层面的框架库就没办法在别的框架中使用,感觉这是一种资源浪费?
    3. 框架与构建工具强绑定

      • 现在的主流框架 angularjs react vue 等,除了 vue ,其他的框架都没办法很方便的在传统服务端渲染开发模式下集成。

    为何有这些感触?

        * 首先本人从事 web 开发也有六七年了,近一年在学习使用 django ,折腾下来发现 django 是一个对于 web 标准理解非常深刻的一个框架。但在用 django 写模板的时候又发现,现在主流的一些 ui 库,没办法直接使用,能够直接使用的库例如 bootstrap ,还是传统的模式,远不及主流 ui 库好用。
    

    如果本人理解不够,还望轻喷。

    39 条回复    2024-03-20 00:17:23 +08:00
    cxe2v
        1
    cxe2v  
       2024-03-19 10:39:55 +08:00   ❤️ 5
    你要关注服务端渲染 -> 客户端渲染 -> 服务端渲染这个过程发生的原因,不要只关注表象
    echo0x000001
        2
    echo0x000001  
    OP
       2024-03-19 10:41:18 +08:00
    追加一下,感觉这个库就比较适合 服务端渲染的开发模式,在传统的模式上加入了比较方便的响应式开发。

    https://alpinejs.dev/start-here
    echo0x000001
        3
    echo0x000001  
    OP
       2024-03-19 10:43:56 +08:00
    @cxe2v 我的理解,本质上是为了提升工程化和开发效率,但是现在工程化的生态已经建立,可以向传统开发模式去靠拢,建立原生开发的生态。
    Torpedo
        4
    Torpedo  
       2024-03-19 10:47:50 +08:00   ❤️ 3
    django 那个时代的 ssr 的问题是做复杂网站不友好。优势是做展示类网站很好,利好 seo 。
    react ng vue 这一类是因为前端应用复杂,同时很多 spa 网站不在乎 seo ,自然前后端分离就行
    至于又出现的 ssr ,那是希望能结合上面两种开发方式
    至于 ui 库有啥浪费的,你算算后端有多少种语言,每种又有多少框架
    echo0x000001
        5
    echo0x000001  
    OP
       2024-03-19 10:48:43 +08:00
    @cxe2v 其实第一点我到不在意,在意的是 2 和 3 。
    echo0x000001
        6
    echo0x000001  
    OP
       2024-03-19 10:51:13 +08:00
    @Torpedo 我在想能不能在框架发展生态的时候给原生开发一点机会,目前除了 vue 脱离构建工具还算能用,其他的框架基本都用不了。
    wanguorui123
        7
    wanguorui123  
       2024-03-19 10:51:45 +08:00
    Web 前端已经进化到 PHP YES
    echo0x000001
        8
    echo0x000001  
    OP
       2024-03-19 10:55:14 +08:00
    @wanguorui123 php 有个叫 拉乌瑞尔(具体咋拼忘了) 的框架倒是能够使用 react vue 等生态,好像还不错。
    zhonghao01
        9
    zhonghao01  
       2024-03-19 10:55:34 +08:00
    以前( 8 年前?)的 web 页面基本上都是服务端渲染,然后陆续出现了 angular 、vue 、react 这些框架,使服务端渲染的开发模式转变为客户端渲染的开发模式,到如今又开始推崇服务端渲染的模式
    ----
    这难道不是根据需求而决定的?有些网站就是不需要 ssr 啊,spa 就行了,有些网站需要 ssr ,并且不想回归传统的方式就出现了 nuxt next 啊
    echo0x000001
        10
    echo0x000001  
    OP
       2024-03-19 11:00:31 +08:00
    @wanguorui123 找到了,是这个 laravel
    Lockeysama
        11
    Lockeysama  
       2024-03-19 11:02:47 +08:00
    主要是还是太卷了,不搞点新东西,没噱头,KPI 完成不了~~

    前后端的负载重心也一直随技术变化,以前一台服务器搞定所有的时候,刚开始上网的人也少,服务器压力不大,随便搞,后面人多了,要减轻服务端压力,开始分离前后,再后面服务端集群化门槛低了,要优化用户体验,又把负载放回服务端……等以后又需要平衡的时候,可能又换回去了……
    zzzlight
        12
    zzzlight  
       2024-03-19 11:05:00 +08:00
    巧了 这也是我觉得的 有一种回去了的感觉
    stinkytofu
        13
    stinkytofu  
       2024-03-19 11:05:51 +08:00   ❤️ 1
    现在前端开发太复杂了, 项目配置起来比写后端还麻烦。
    echo0x000001
        14
    echo0x000001  
    OP
       2024-03-19 11:06:13 +08:00
    @Lockeysama 我只希望卷的时候,不要太自由发挥,脱离标准,照顾一下原生的生态。
    zzzlight
        15
    zzzlight  
       2024-03-19 11:09:55 +08:00
    2,3 我觉得其实技术问题之外 很多程度上是社区或者人的问题 排挤其他框架最后大家都用自己的 那么为啥要做兼容别人的生态呢,这个是技术社区之间的人的问题。
    clue
        16
    clue  
       2024-03-19 11:11:30 +08:00
    1. 前后端分离是为了工程化解耦合, 最后回到服务端渲染是为了提升性能, 但现在大部分还是分离的, 并且与以前有个不同就是全面 JS 化
    2. 多框架不正代表有活力吗? 人多了自然就有更多的细分市场, 这些框架差异挺大的, 但也在互相借鉴学习
    3. 本质上还是前端复杂度在这里, 另外 JS 原本设计出来也没想到会应用这么广泛, 都渗透到服务端了; 很多为了提升开发效率加的特性你要向前兼容, 那就离不开各种工具了; 如果你把视角转到纯服务端, 比如 nodejs, 你会发现框架变化挺少的, 到现在不还是在用 express / koa 嘛
    Lockeysama
        17
    Lockeysama  
       2024-03-19 11:12:10 +08:00
    @echo0x000001 难,毕竟各家都喜欢搞技术壁垒,人无我有才能保持优势~~~

    而且在原技术上想搞突破还是挺难的,要出圈,最好的办法就是从另一个方向去突破创新了~
    jymsy
        18
    jymsy  
       2024-03-19 11:12:22 +08:00
    你是后端开发吧,现在的服务端渲染和之前的可不一样,虽然名字一样。现在的 ssr 主要是为了解决首屏渲染的问题。
    ixixi
        19
    ixixi  
       2024-03-19 11:12:39 +08:00
    多一种选择不好吗 ? 自己想用啥就用啥
    ChefIsAwesome
        20
    ChefIsAwesome  
       2024-03-19 11:12:48 +08:00
    首先,这些框架是做 spa 的,所以确实没必要上 spa 的页面就不该用这些东西,徒增复杂度。
    但是,现在新出来的后端就没学过,也不会干套模板。所以这活还是前端干。前端又整了套 js 在服务端渲染的东西。
    现在这个局面是各种因素导致的,没办法。
    yKXSkKoR8I1RcxaS
        21
    yKXSkKoR8I1RcxaS  
       2024-03-19 11:15:41 +08:00
    前端越来越复杂
    jguo
        22
    jguo  
       2024-03-19 11:23:00 +08:00   ❤️ 1
    先搞清楚轮回和螺旋上升的区别
    hongweijie8
        23
    hongweijie8  
       2024-03-19 11:28:02 +08:00   ❤️ 1
    我用 django 写模版的时候都是引入静态资源中的 vue.js 和 element.js/css ,不用 bootstrap ,感觉不是很好用
    wu67
        24
    wu67  
       2024-03-19 11:50:33 +08:00   ❤️ 1
    讲真 ssr 只是为了官网, 更多的企业应用例如 oa 管理后台 crm 之类的, 其实完全不需要 seo, 这些场景都是 spa 的天下

    生态乱战这个我没话说, 前端就是这样乱

    至于工具, 也是乱战, 你看 vue 的迁移, webpack vue-cli vite, 每一次都是大难题, 不是说工具本身有什么问题, 是业务代码要各种改、还有私有 API 之类的调整, 本质上你选了一个技术栈, 那基本就是只能在这个坑里打滚了, 楼下别杠什么升级, 问问老板给不给你时间再说...
    ychost
        25
    ychost  
       2024-03-19 12:27:44 +08:00
    以前的服务端渲染和现在不太一样,以前基本就是个字符串模板引擎替换,现在像 Blazor 之类的是可以在服务端响应前端 click 事件,直接操作 DB 的,省去了 Controller 、Service 等裹脚布
    Torpedo
        26
    Torpedo  
       2024-03-19 12:30:18 +08:00
    @echo0x000001 #6 可以啊,react 也能不用构建工具开发的。所谓编译不过是个工程化问题。而且有构建工具很正常,不然怎么打包压缩?
    nomagick
        27
    nomagick  
       2024-03-19 12:36:13 +08:00
    现在的前端是有结构性问题的,整个行业的发展前景都又问题

    究其原因,是领头羊不行,领头羊的上限太低,下限更低,全部都不是软件行业深耕过的人,而是应届生或者别的不相干的行业转过来,没有工程思维,缺少背景知识和积累

    每次出一个新的框架,不是把人往高处带,反而是不断突破底线,不断颠覆之前的标准和工程最佳实践

    领头羊把路带偏,后面跟着的只能是越走越偏,和软件行业的主支差着十万八千里,都不知道以后怎么办
    x2ve
        28
    x2ve  
       2024-03-19 12:56:34 +08:00 via iPhone
    现在也有类似的 fastui 这种
    iidear2015
        29
    iidear2015  
       2024-03-19 13:30:37 +08:00
    > 在用 django 写模板的时候又发现,现在主流的一些 ui 库,没办法直接使用。
    ---
    你先整一个集成方案,然后开源,就可以直接使用了
    alphardex
        30
    alphardex  
       2024-03-19 13:40:47 +08:00
    确实,不过我的视角跟 OP 不同,我觉得前端还有一个重要的方面是负责用户所看到的视觉效果(不限于 CSS 、Canvas 、WebGL ),但现在研究这方面的感觉越来越少了,都是在研究三大框架和 SSR ,很没意思
    (嘛,不过对于看见 CSS 就头疼的后端来说这些不讲也行)
    cxzweb
        31
    cxzweb  
       2024-03-19 13:46:51 +08:00   ❤️ 1
    @nomagick 那你来做领头羊吧
    lozzow
        32
    lozzow  
       2024-03-19 14:27:40 +08:00
    后端学会一门语言后,基本上可以再不同的框架之间快速切换
    反而前端感觉上时换一个框架就等于学习了一门新的语言
    zzzyyysss
        33
    zzzyyysss  
       2024-03-19 14:39:47 +08:00
    @echo0x000001 laravel + inertiajs 一个字爽!
    Areman
        34
    Areman  
       2024-03-19 17:43:26 +08:00
    @cxzweb 哈哈哈哈哈哈哈
    duanxianze
        35
    duanxianze  
       2024-03-19 17:54:36 +08:00   ❤️ 1
    诚如楼上诸位所说,这个演进的背后是前端越来越复杂了,前端能做的越来越多了,另外你说的那些都 2 ,3 不成立,angularjs react vue 完全可以混用,框架与构建工具也没有强绑定
    SorcererXW
        36
    SorcererXW  
       2024-03-19 18:54:17 +08:00
    感觉是大规模的边缘计算/CDN 基础设施完善,jamstack 开始流行,现在的 server component 是在这个基础上,让网站在不损失服务端渲染的好处,同时获得更强的动态能力,属于 spa 和 ssr 的融合
    lstz
        37
    lstz  
       2024-03-19 18:57:22 +08:00 via Android
    服务器渲染和客户端组件并不冲突,可以参考 laftools.dev ,该静态的直出,该动态就动态加载
    lynan
        38
    lynan  
       2024-03-19 19:43:27 +08:00
    我也想说现在的服务端渲染和以前的服务端渲染其实几乎并不是一回事,php/jsp 时代的服务端渲染,客户端没有多少互动的能力,但是现在的服务端渲染是满足前端可以是一个 Web App 的形式上,通过服务端提前拼接一些首屏内容提升加载速度
    BeiChuanAlex
        39
    BeiChuanAlex  
       2024-03-20 00:17:23 +08:00
    对前端不是很了解,但是根据 vercel 的文档来看,现在的服务端渲染和以前的 django 所描述的服务端渲染不是一个东西,或者说不太一样,vercel 可以在编译的时候把该静态的全部进行静态化,动态的地方就动态渲染,基本上是尽力做到静态化。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3608 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:45 · PVG 08:45 · LAX 17:45 · JFK 20:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.