类为什么在前端框架用的越来越少了?
类class在前端框架里为什么越来越少用了这是一个非常真实的趋势尤其在 React、Vue 3、Svelte 等现代前端框架的生态里基于 class 的组件写法正在被逐渐边缘化取而代之的是函数式组件 Hooks或 Composition API。下面是目前最核心的几条原因按重要程度排序1. Hooks / Composition API 带来了更自然的代码组织方式class 组件的问题在于生命周期和状态逻辑是分散在不同方法里的同一个功能的代码被切分成多个生命周期方法class UserProfile extends Component { state { user: null, loading: true }; componentDidMount() { this.fetchUser(); } componentDidUpdate(prevProps) { if (prevProps.id ! this.props.id) { this.fetchUser(); } } fetchUser async () { ... } }而用 Hooks / Composition API 后逻辑可以按“功能”聚合function UserProfile({ id }) { const [user, setUser] useState(null); const [loading, setLoading] useState(true); useEffect(() { const fetchUser async () { setLoading(true); const data await api.getUser(id); setUser(data); setLoading(false); }; fetchUser(); }, [id]); // 依赖变化自动重跑 // 所有和「获取用户」相关的逻辑都在一起 }结论Hooks 让“关注点分离”变成了“关注点聚合”代码更直观、更容易复用。2. class 的 this 绑定问题太痛苦几乎每个前端开发者都踩过这些坑忘记 bind → 点击事件 this 变成 undefined在 render 里写onClick{this.handleClick.bind(this)}→ 每次渲染都创建新函数用箭头函数解决 → 类里到处是箭头函数代码看着别扭constructor 里一堆 this.xxx this.xxx.bind(this)Hooks 彻底消灭了this的概念从根源上解决了这个问题。3. 函数组件 Hooks 性能更好官方优化方向函数组件本身更轻量没有实例、没有 prototype 链React 官方从 16.8 开始把所有新特性都优先给函数组件Suspense、Concurrent Mode、Server Components、use() 等class 组件的很多特性如 getDerivedStateFromProps、componentDidCatch在 Hooks 时代都有更好的替代方案React 官方文档现在甚至把 class 组件放在“旧写法”章节强烈推荐函数组件。4. 更好的 Tree Shaking 和打包体积函数组件 Hooks 更容易被 bundlerwebpack、esbuild、rolldown、turbopack 等做 tree-shaking。class 组件因为有实例方法、生命周期、this 绑定等很难被完全消除死代码。5. 社区和生态已经全面转向函数式2020 年之后几乎所有新库、新组件、新教程都默认用 Hooks大量经典库如 react-query、zustand、swr、jotai、valtio、tanstack table 等都是基于 Hooks 设计的用 class 写组件反而会显得“过时”在团队协作中增加心智负担6. Composition API / Signals 进一步加速了“无 class”趋势Vue 3 的 Composition API、SolidJS 的 Signals、Svelte 的 runes、Angular 的新控制流 inject()都在往纯函数 响应式变量的方向演进几乎完全抛弃了 class 的写法。那 class 还有什么场景会用目前还在用 class 的主流场景其实已经很少了主要剩下遗留项目不得不维护的老代码需要使用 React 的 ErrorBoundary目前官方仍推荐 class 组件做 ErrorBoundary某些特殊的高阶组件HOC场景但现在也越来越少企业内部的“规定必须用 class”极少数总结为什么 class 被抛弃的本质class 组件的设计是面向对象的而现代前端更倾向于函数式 组合式编程范式。函数式写法 Hooks / Composition在以下维度全面胜出逻辑聚合度更高没有 this 绑定地狱更容易复用逻辑自定义 Hook / composable function官方优先支持新特性生态和社区共识已经转向更符合现代 JS/TS 的发展方向const/let、箭头函数、解构、模块化一句话class 组件在前端不是“不好用”而是“不再是最优解”了。现在的趋势是能用函数组件 Hooks 的地方尽量不用 class。你现在项目里还在用 class 组件吗还是已经完全切到 Hooks 了

相关新闻

探索Matlab/Simulink中的三相异步电机弱磁控制仿真模型

探索Matlab/Simulink中的三相异步电机弱磁控制仿真模型

Matlab/Simulink仿真模型 三相异步电机弱磁控制 附赠模型指导 在电机控制领域,三相异步电机凭借其结构简单、运行可靠等优点,广泛应用于工业生产等各个领域。而弱磁控制技术则是提升三相异步电机在高速运行时性能的关键手段。今天,咱就来唠唠…

2026/5/17 3:34:44 阅读更多 →
【读书笔记】《我战胜了抑郁》

【读书笔记】《我战胜了抑郁》

《我战胜了抑郁》 关于本书 书名:《我战胜了抑郁》 作者:格雷姆考恩(Graeme Cowan) 作者资格 严重抑郁症患者,曾自杀4次其中一次割腕躺在浴缲中流血,被家人救活最终成功走出抑郁症采访了4064名抑郁症患…

2026/5/17 3:34:42 阅读更多 →
HoRain云--5分钟搞定SpringBoot连接MySQL

HoRain云--5分钟搞定SpringBoot连接MySQL

🎬 HoRain云小助手:个人主页 🔥 个人专栏: 《Linux 系列教程》《c语言教程》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!…

2026/7/3 16:37:23 阅读更多 →

最新新闻

LangChain学习及应用(超详细)

LangChain学习及应用(超详细)

1. 引言:为什么需要 LangChain? 在人工智能,特别是大语言模型(LLM)飞速发展的今天,我们拥有了像 GPT、Claude、文心一言等强大的通用模型。然而,将这些模型直接应用到复杂的业务场景中&#xff…

2026/7/6 8:01:19 阅读更多 →
基于SSM实现的网上书城系统 基于SSM的宾馆信息管理系统 基于SSM实现的社团管理系统 基于SSM的超市进销存管理系统 基于SSM的在校生职业走向调查分析系统 基于SSM实现的员工管理系统

基于SSM实现的网上书城系统 基于SSM的宾馆信息管理系统 基于SSM实现的社团管理系统 基于SSM的超市进销存管理系统 基于SSM的在校生职业走向调查分析系统 基于SSM实现的员工管理系统

基于springbootvue的在线问卷调查管理系统 基于ssm的鲜花销售系统 基于ssm的外卖点餐订餐管理系统 基于springboot的个人博客系统 基于SSM的房屋租赁管理系统 项目合集 提取码: 32y6 更多资料汇总 提取码: dk3h

2026/7/6 7:57:17 阅读更多 →
类型断言和非空断言

类型断言和非空断言

类型断言类型断言 相当于告诉 TypeScript 编译器:"相信我,我知道这个值是什么类型"。它不会改变变量的实际值,只影响编译时的类型检查。as 语法 let length: number (value as string).length;处理联合类型interface Cat {name: s…

2026/7/6 7:57:17 阅读更多 →
6DoF运动追踪:IIM-42652 IMU与PIC18F86K90实战指南

6DoF运动追踪:IIM-42652 IMU与PIC18F86K90实战指南

1. 从3D到6DoF:IMU传感器的进阶应用在运动追踪和姿态检测领域,3D空间感知已经不能满足日益增长的需求。最近我在一个机器人导航项目中,需要将传统的3D定位升级为6自由度(6DoF)追踪系统。这个过程中,IIM-426…

2026/7/6 7:55:17 阅读更多 →
小默说AI(22)RLHF——让AI学会人类价值观

小默说AI(22)RLHF——让AI学会人类价值观

RLHF——让AI学会人类价值观 上集我们讲了强化学习的基本概念:智能体在环境中试错,通过奖励信号调整行为策略。但一个关键问题浮现出来了——奖励从哪来?如果每件事都要人工设计奖励函数,那工作量岂不要命?这就是RLHF要解决的问题。 RLHF,全称Reinforcement Learned Fr…

2026/7/6 7:55:17 阅读更多 →
WSEN-ISDS传感器与PIC18F96J94微控制器的硬件架构与运动融合算法

WSEN-ISDS传感器与PIC18F96J94微控制器的硬件架构与运动融合算法

1. WSEN-ISDS传感器与PIC18F96J94微控制器的硬件架构解析WSEN-ISDS(型号2536030320001)是一款六轴MEMS惯性测量单元(IMU),采用电容式传感原理,集成了三轴加速度计和三轴陀螺仪。其核心参数包括:加速度计量程&#xff1…

2026/7/6 7:53:17 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻