V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hylqs
V2EX  ›  程序员

Next.js 在国外还能火多久

  •  
  •   hylqs · 2024-08-31 22:37:10 +08:00 · 10321 次点击
    这是一个创建于 369 天前的主题,其中的信息可能已经有所发展或是发生改变。
    楼主后端加半个前端,现在不知道是该继续深入 Java 还是学 Next.js ,后者在国外挺火,学会以后找 remote work 会不会更容易。

    或者有没有 v 友分析下 Next.js 这一套的未来。
    59 条回复    2024-09-03 15:57:03 +08:00
    ibegyourpardon
        1
    ibegyourpardon  
       2024-08-31 22:47:06 +08:00   ❤️ 5
    你就当成是下一个 Spring Boot+ Vue in china 的地位就可以了。

    说人话就是纵使它有千般不好万般不是,你还是只管冲就对了。

    对了,我卖 Next.js 的课的。XD

    以及,大小写正确好评。
    ZZ74
        2
    ZZ74  
       2024-08-31 22:59:28 +08:00
    就是个 api+jsp 的混合体。反正好用就会有人用 直到新的更好用的出来
    woodytang
        3
    woodytang  
       2024-09-01 00:15:03 +08:00   ❤️ 3
    前端那帮人不知道在搞点什么
    服务端渲染最搞笑了,又走回 php 几十年前的老路,我还不如去用 laravel 全家桶
    wxw752
        4
    wxw752  
       2024-09-01 00:31:20 +08:00
    我们需要爬虫收录,技术选型的时候让我们用 Next.js ,被我和一同事当场制止

    现在 PHP 单独搞了一套专供爬虫的页面,爬虫请求到网关那层,发现是爬虫直接跳 PHP 。
    GG668v26Fd55CP5W
        5
    GG668v26Fd55CP5W  
       2024-09-01 00:35:19 +08:00 via iPhone
    挺好的,我喜欢。
    lstz
        6
    lstz  
       2024-09-01 00:40:16 +08:00   ❤️ 1
    看到不少"Next.js sucks"的文章在外网,可以 check 下这个 issue 的最后几条回复 https://github.com/vercel/next.js/discussions/39242#discussioncomment-10432676
    ShuWei
        7
    ShuWei  
       2024-09-01 02:38:52 +08:00
    @wxw752 SSR ?
    ShuWei
        8
    ShuWei  
       2024-09-01 02:44:06 +08:00
    用过一段时间,目前基本弃用了,用的过程中最大的感受就是莫名其妙的问题还不少,而且是偶尔就蹦出来新的,这一点挺符合一般前端框架的尿性的,跟 js 本身如出一辙。不过,用来做东西本身其实还不错,已经能应付绝大部分场景,配合服务端渲染,能做的事情还是很多的,要不是好几次蹦出来的奇怪问题让我恼火了,估计会一直用
    flmn
        9
    flmn  
       2024-09-01 02:51:21 +08:00
    我对 Next.js 的评价是:这是要接过 PHP 的衣钵的。
    dayeye2006199
        10
    dayeye2006199  
       2024-09-01 03:20:08 +08:00
    这玩意儿会 react 还需要专门学吗?
    07aPzknB16ui9Cp3
        11
    07aPzknB16ui9Cp3  
       2024-09-01 03:51:58 +08:00
    要看你自身的项目需求和个人倾向

    Next 这种东西的源头来自前端社区,如果你的项目很复杂并且工具链比较现代,后端比较薄只有 CURL ,或者你的团队还有单独的人力维护一个中间层,并且你还遇到了静态化的需求,这种东西就完美契合你

    而且这种东西并不能取代传统意义的后端服务,特别是对于互联网里面常见的分布式系统,这种东西的技术特征很难满足设计需求,或者说没什么优势;又或者你本身是一个后端从业者,对这种技术的出发点比较困惑,结果就是你可能会认为这玩意是个奇怪的 php 模板,那么就不要碰,因为你不理解它的应用场景

    如果你要做一些 Singleton web service with modern frontend toolchain ,除了这东西你还可以看看 remix 和 Blazor ,在服务器逻辑方面更直接一点

    至于工作方面,个人想来想去觉得和 Java 一点关系都没有
    jlak
        12
    jlak  
       2024-09-01 04:06:39 +08:00 via iPhone
    作为 React 首推的框架已经是前端中 T0 的地位
    目前看来周边生态都在往 Next.js 靠拢
    除非作死不然不太容易会凉
    TabGre
        13
    TabGre  
       2024-09-01 08:04:18 +08:00 via iPhone
    Next 或许会死,但是 React 不会
    BeijingBaby
        14
    BeijingBaby  
       2024-09-01 08:57:19 +08:00
    前端以前是切图的,写不了后端,也没啥技术含量,薪水一直上不去。

    后来又了各种框架,现在还能写后端了,后端再也不是 php,java,python...专属的了。

    前端的地位、薪水终于上来了,很不容易。。。
    xuanbg
        15
    xuanbg  
       2024-09-01 09:07:11 +08:00
    你管他会不会火,不火难道就不能用了?还有,这玩意还需要花功夫学吗?不是看一眼就会用了吗?没什么代价的事,有什么好纠结的?

    换我的话,这些工具到用的时候直接上手用就是了,学是不可能学的,这辈子都不可能。
    R4rvZ6agNVWr56V0
        16
    R4rvZ6agNVWr56V0  
       2024-09-01 10:37:09 +08:00
    Next.js 并不是前端必备技能,反而它是基于的 React ,后者才是。
    ellermister
        17
    ellermister  
       2024-09-01 10:55:47 +08:00
    @woodytang
    @wxw752

    next.js 没用过,但是我最近用 nuxt 写代码
    ssr 最终部署出来效果挺好的,浏览器端速度很快,由于框架是自己解决服务器与客户端渲染一致问题,就很依赖框架自带的组件和能力,如果有什么不支持的动态 js 或者插入一些传统 js 就会很麻烦。

    另外在开发阶段,速度极其慢,我不是很懂,看起来他要把所有元素抛到前端动态渲染动态引入,刷新页面后,看起来页面加载好了,实际还有很多请求没有加载完,你点一下他就跳转了(衰退到传统网页),又得重新加载....


    整个速度贼慢,还很耗费机器性能。
    echo0x000001
        18
    echo0x000001  
       2024-09-01 11:50:49 +08:00
    @dayeye2006199 需要,很多新概念
    DoveAz
        19
    DoveAz  
       2024-09-01 12:02:33 +08:00 via Android   ❤️ 1
    @ellermister 这个很可能是 vite 的问题,而不是 nuxt 的
    gogogo1203
        20
    gogogo1203  
       2024-09-01 12:12:29 +08:00
    定位是国外的话, 我只能说别无他路。 我也不喜欢 Nextjs, 各种'use client',各种 opt out ssr. 但是这个就是国外的主流。开源的项目基本都是用的 Nextjs.
    luckycat
        21
    luckycat  
       2024-09-01 12:24:53 +08:00
    NextJS 现在火是因为之前有多年的积累,然而现在技术路线往后端靠拢是一个不知天高地厚的做法,后端几十年来成熟的技术体系 NextJS 绝对是无法撼动丝毫的。

    只要再出现一个专注前端,摒弃 Server Component 的 JS 框架,NextJS 被淘汰指日可待。Server Component 是个怪胎,并不是趋势。
    ellermister
        22
    ellermister  
       2024-09-01 12:28:17 +08:00
    @DoveAz 但是我单纯 vue3 基于 vite 很快的的哟。。我觉得就是 nuxt 那一套慢以及 nextui 更慢。最新版
    agdhole
        23
    agdhole  
       2024-09-01 12:30:38 +08:00
    很蠢的路线,试图抢占后端市场,做成银弹,实际上啥都做不成
    qweruiop
        24
    qweruiop  
       2024-09-01 12:39:03 +08:00
    感觉做成银弹了,但实际上还差的远啊。。。
    terranboy
        25
    terranboy  
       2024-09-01 12:45:12 +08:00
    很多人理解错了 NEXT.JS 其实定位为胶水层,简单的后端 本身能实现,复杂的后端用 API 和 GRPC 这些连接, 重要的核心还是在专注前端的 SSR (既能利用 REACT 来写用户体验强的 UI , 又能服务端渲染), 但是很多人 NEXT.JS 用的不对 ,基本全是 use client ,等于用的是 REACT
    foolishcrab
        26
    foolishcrab  
       2024-09-01 12:56:50 +08:00   ❤️ 1
    js react tsx 所有这些能流行起来最大的优点就是灵活性,react 2024 年还整天挂在嘴上 just javascript 。
    你再看看 Next 它灵活吗,连文件夹组织都想管。主打 DX 却又有无数 break change 和几千个未解决 issue 。

    这东西你能接受全部按照它推荐的范式去写,那确实很快,但是问题来了,那为什么不写 vue ?
    但凡你的需求它满足不了你想 workaround 或者改造的时候,赶紧逃离
    wangshuo6
        27
    wangshuo6  
       2024-09-01 14:00:13 +08:00
    快速开发新产品还是好用的,并不一定用到 nextjs 的后段功能,最多整整服务端渲染
    youyang
        28
    youyang  
       2024-09-01 14:00:51 +08:00
    缺人可以叫我
    huangzhiyia
        29
    huangzhiyia  
       2024-09-01 14:13:35 +08:00 via iPhone
    nextjs 中的 action 特性非常舒服

    后端不用再封装 api 层
    前段不用再自己调用 fetch 请求

    开发体验已经强的离谱 现在那个非 react 的框架/语言能做到?
    sweat89
        30
    sweat89  
       2024-09-01 14:15:46 +08:00
    jsp:这个我熟
    mx1700
        31
    mx1700  
       2024-09-01 14:21:27 +08:00 via Android
    @zmaplex 十几年前的 asp.net 可以一战😏
    terranboy
        32
    terranboy  
       2024-09-01 14:33:46 +08:00   ❤️ 3
    把一个 强交互性的 UI 静态部分通过服务端渲染出来再跟前端 JS 水合 这是 php jsp 后端渲染能做到的?
    june4
        33
    june4  
       2024-09-01 15:20:28 +08:00
    @zmaplex 别的框架可能也在跟进,比如类似这种 https://docs.solidjs.com/solid-router/concepts/actions
    huangzhiyia
        34
    huangzhiyia  
       2024-09-01 15:32:13 +08:00
    @june4 简单看了下也蛮不错似乎比 react 香 前端框架迭代太快了实在肝不动了

    准备就抱着 React + Tailwind CSS 养老 😂
    TheWalkingDead
        35
    TheWalkingDead  
       2024-09-01 16:25:39 +08:00
    真的很讨厌前端...
    zed1018
        36
    zed1018  
       2024-09-01 17:12:31 +08:00   ❤️ 1
    无论怎么吹 nextjs 的 SSR 能力,但凡在国内用 ant.d 基本没法告别 "use client",如果不是全局的话各种甚至 hydration error
    satoru
        37
    satoru  
       2024-09-01 17:14:36 +08:00
    你要学什么取决于你要做什么,而不是拿两个东西问“哪个更有前途”
    如果你不是要学来做什么,那大概率你学完也是忘了,找工作也不会有什么优势
    asuraa
        38
    asuraa  
       2024-09-01 17:45:23 +08:00
    我最近特别喜欢 Blazor 这玩意一把梭 太爽了
    xiaohanyu
        39
    xiaohanyu  
       2024-09-01 18:12:07 +08:00
    Next.js 还是做了非常做的事情的,比如 prefetch ,图片的优化等等,很多效果靠传统的后端语言 + 传统的 jQuery/DOM 蛮难实现的。

    Vercel 本身的一个 commerce 的 demo: https://demo.vercel.store/,你可以试试这个站的不同页面切换的效果,想想如果用传统的 jQuery/DOM 该如何做。
    logic2
        40
    logic2  
       2024-09-01 18:29:37 +08:00
    @dayeye2006199 需要的,page 路由,SSR ,还有接口调用 鉴权,都是绑定在 Next.js 一块的,全栈说实话不是这样全栈的,js 很多场景 并不一定合适
    wzdsfl
        41
    wzdsfl  
       2024-09-01 19:20:31 +08:00   ❤️ 4
    @woodytang 一知半解就来嘲讽的人最可笑,如果真的是重回老路为什么这么多人用,能不能先调研再评价
    wangxiaoer
        42
    wangxiaoer  
       2024-09-01 19:27:41 +08:00
    @woodytang #3 现在真是魔怔了,有些纯 CMS 展示型的页面也用纯前端渲染,为了爬虫,再搞个服务端渲染。

    潜意识里面好像后端有了 js 的框架,前端就可以上手干了。 这个理念多少和 中文编程 能够降低 编程门槛 差不多。总感觉不太对劲。
    songray
        43
    songray  
       2024-09-01 19:31:22 +08:00   ❤️ 3
    Next.js 能火主要是因为 Vercel 、Netlify 、Cloudflare 三位赛博菩萨的免费算力。
    Vercel 作为这个模式的领头羊,在前两年融到了不少钱( 1.5 亿刀)。但他这个模式非常烧钱,而且根本没有盈利的迹象。
    现在真正在用 Next.js 的都是小型应用+初创业务,Vercel 如何才能从这些人身上赚钱?
    所以我不看好 Next.js ,因为我不看好 Vercel 。技术这东西完全是市场决定的。
    shiweifu
        44
    shiweifu  
       2024-09-01 20:12:01 +08:00
    用 next.js 做了几个小项目,都是到处 "use client"
    打算试试 SSR 时,发现前后端都得整,也用不上,放弃了,回归 vite react 模板
    zbowen66
        45
    zbowen66  
       2024-09-01 21:39:42 +08:00
    @woodytang #3 有 React 加成; Next.js 现在可以服务端+客户端并行渲染。
    yanyao233
        46
    yanyao233  
       2024-09-01 21:41:25 +08:00 via Android
    nextjs 有一个好,开箱即用,做了很多优化,所以门槛并不是很高,读读文档,着重了解下那些文件约定和一些优化组件就能上手了。难的地方(或者说有门槛)还是在于 React ,框架这种东西,不整的简单易用点谁还去用?

    至于老哥们说的全是"use client"确实没咋遇到,我的思路一般是整个页面框架用 server component ,内部一些交互抽离出来封装成 client component ,大部分都还能复用
    zbowen66
        47
    zbowen66  
       2024-09-01 21:49:35 +08:00
    @shiweifu #44 第一点有同感,大部分数据(状态)需要在浏览器变化的,它自带的数据流虽然也可以做到,但我总觉得不趁手。还有 API 的类型定义、路由守卫的封装等很不方便,当然现在有 server actions 缓解很多,有知道怎么封装的踢我下。
    stranbird
        48
    stranbird  
       2024-09-02 04:33:39 +08:00
    @zbowen66 类型定义用`next-safe-action`
    s2555
        49
    s2555  
       2024-09-02 07:59:46 +08:00
    从后端做起的全栈真的是台痛苦啦
    ZGame
        50
    ZGame  
       2024-09-02 08:22:30 +08:00
    @logic2 这就是后端的知识体系吧...
    jguo
        51
    jguo  
       2024-09-02 08:54:21 +08:00
    能火很久,因为是 vercel 做的,现在又跟 react 搭上了
    liudewa
        52
    liudewa  
       2024-09-02 09:40:52 +08:00
    @jguo #51 不是本来就基于 react 吗 怎么 '又' 难道你说的是 nest?
    liudewa
        53
    liudewa  
       2024-09-02 09:41:22 +08:00
    看了评论, 'vite' 才是 受益者啊
    liudewa
        54
    liudewa  
       2024-09-02 09:42:39 +08:00
    我也准备学 nextjs 现在前端工作五年 只会 vue2,3 但远程招聘都是 react 话说,不学习 reat 能直接学习 nextjs 吗
    jguo
        55
    jguo  
       2024-09-02 10:34:56 +08:00
    @liudewa 早期只是众多 react 框架中的一个,后面已经可以影响 react 的发展路线了。
    CodeCodeStudy
        56
    CodeCodeStudy  
       2024-09-02 11:18:28 +08:00
    @ibegyourpardon #1 既然你提到了大小写,那应该打正确的 China ,而不是 china
    xiaotianis
        57
    xiaotianis  
       2024-09-02 15:49:31 +08:00
    @zed1018 组件库的 use client 问题可以用这个库解决`use-client`,而且现在很多 UI 新版本都兼容了 use client
    hylqs
        58
    hylqs  
    OP
       2024-09-03 09:23:43 +08:00
    @liudewa #54 可以,我 Vue 和 React 都是一知半解,照样直接开学 Next.js
    shiweifu
        59
    shiweifu  
       2024-09-03 15:57:03 +08:00
    @liudewa

    next.js 上手很容易,对着文档整就行了,路由是文件形式的,比 React Router 好用多了,默认是服务端渲染,如果想要做 SPA ,需要在文件顶端 "use client"。如果不介意这一点,可以直接当作“更好用”的 React 。

    只是背着一堆用不到的配置和“优化”负重前行,总是感觉怪怪的
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   944 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 21:25 · PVG 05:25 · LAX 14:25 · JFK 17:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.