从 Java/Go 到 React:一个后端程序员的 TypeScript 受难与破壁实录(附 Flutter 做中间翻译器)
从 Java/Go 到 React,顺便拉 Flutter 垫背 一、前言:为什么后端程序员学 React 想骂人? 某后端组有天接了个需求:用 React + TypeScript 写个管理后台。组里人均三年 Spring Boot 或 Go Gin 经验,前端认知停留在 jQuery 版本。一开始想的是"TS 不就是带类型的 JS 嘛,有类型就不慌"——结果打开第一个 React 教程就傻了:函数组件、Hooks、闭包陷阱、依赖数组、JSX 里嵌逻辑……这哪是前端,这分明是另一个世界。 后端思维高度固化:类继承、接口实现、线程阻塞、强类型、反射——这些概念在 Spring 和 Go 里是护城河,在 React 里是全都没用的东西。类?函数组件不需要。接口?TS 的结构化类型不需要显式 implements。线程?JS 单线程事件循环,根本没有多线程。 Flutter 被拉进来做"中间翻译器":Dart 语法像 Java,但框架思维像 React。先写 Flutter 再写 React,会发现很多映射:Widget 树 >= 虚拟 DOM,setState >= useState,initState/dispose >= useEffect。把 Flutter 当"桥梁",Java/Go 当"起点",React 就没那么陌生。 为什么不直接对比?因为 Java 和 TS 差距太大——标称类型 vs 结构类型,多线程阻塞 vs 单线程事件循环。中间垫一个 Flutter(标称类型 + 单线程异步 + 声明式 UI),过渡就平滑了。 ...