react 类组件和函数组件区别

server/2024/11/13 15:25:39/

  1. 类组件需要使用this关键字来访问props和状态,而函数组件则可以直接访问这些值。
  2. 原来只有类组件可以使用的特性,比如状态和生命周期方法,现在函数组件通过Hooks也可以使用。
  3. 函数组件通常更简洁,更易于测试和理解。
  4. 类组件目前仍然支持一些尚未在函数组件中提供的特性,比如错误边界。

  1. 语法上:“函数组件是一个纯函数,它接收一个 props 对象返回一个 react 元素; 类组件需要去继承 React.Component 并且创建 render 函数返回 react 元素,虽然实现的效果相同,但需要更多的代码。”

类是组合寄生继承的语法糖,如果我们需要转译成 ES5 之前的代码,我们需要更多的预置代码,从而导致体积更大。

  1. 功能上:“之前,在使用场景上,如果存在需要使用生命周期的组件,那么主推类组件;设计模式上,如果需要继承,也是类组件。但现在由于 React hooks 的推出,生命周期概念的淡出,函数组件完全可以取代类组件。其次继承也不是组件最佳的设计模式,官方更推崇“组合优先于继承”的设计概念,所以类组件在这方面的优势也在淡出。”

  2. 类组件在未来事件切片与并发模式中,由于生命周期带来的复杂度,并不易于优化。而函数组件本身轻量简单,且在 Hooks 的基础上提供了比原先更细粒度的逻辑组织与复用,更能使用 React 的未来发展。


http://www.ppmy.cn/server/140994.html

相关文章

什么是红黑树

红黑树是一种自平衡的二叉查找树,在计算机科学中常用于组织数据,如数字块等,其典型的用途是实现关联数组。以下是对红黑树的详细介绍,以及左旋、右旋、变色等操作的解析: 一、红黑树简介 起源与命名:红黑树…

算法训练(leetcode)二刷第二十一天 | 491. 非递减子序列、*46. 全排列、*47. 全排列 II、D

刷题记录 491. 非递减子序列*46. 全排列*47. 全排列 IID 491. 非递减子序列 leetcode题目地址 题目提供的数据有重复,但结果集中不可有重复组合,且不允许排序,因此需要借助Set或额外的hash表进行标记当前层是否使用了相同元素。 时间复杂度…

SSRF〈2〉

SSRF的进阶 1.Gopher协议的利用 1.gopher协议可以通过url指向指定IP端口发送任意内容&#xff0c;模拟大多数TCP协议&#xff0c;是SSRF中的一把利刃。 gopher协议URL&#xff1a; gopher://<host>:<port>/_<url编码的TCP数据> 这个url编码的TCP数据是goph…

华为HarmonyOS借助AR引擎帮助应用实现虚拟与现实交互的能力3-获取设备位姿

设备位姿描述了物体在真实世界中的位置和朝向。AR Engine提供了世界坐标下6自由度&#xff08;6DoF&#xff09;的位姿计算&#xff0c;包括物体的位置&#xff08;沿x、y、z轴方向位移&#xff09;和朝向&#xff08;绕x、y、z轴旋转&#xff09;。通过AR Engine&#xff0c;您…

开源竞争-大数据项目期末考核

开源竞争&#xff1a; 自己没有办法完全掌握技术的时候就开源这个技术&#xff0c;培养出更多的技术依赖&#xff0c;让更多人完善你的技术&#xff0c;那么这不就是在砸罐子吗&#xff1f;一个行业里面总会有人砸罐子的&#xff0c;你不如先砸还能听个想。 客观现实&#xf…

Java实战项目-基于Spring Boot+vue框架的健康健身追踪系统

大家好&#xff0c;我是stormjun&#xff0c;今天为大家带来的是Java实战项目-基于Spring Bootvue框架的健康健身追踪系统。该系统采用 Java 语言 开发&#xff0c;MySql 作为数据库&#xff0c;系统功能完善 &#xff0c;实用性强 &#xff0c;可供大学生实战项目参考使用。 博…

SpringMVC总结 我的学习笔记

SpringMVC总结 我的学习笔记 一、SpringMVC简介1.MVC2.SpringMVC概述3. SpringMVC中的核心组件4.SpringMVC核心架构流程 二、SpringMVC框架实例具体实现使用注解实现 四、数据处理及跳转1.结果跳转方式2.处理器方法的参数与返回值处理提交数据数据显示到前端 五、RestFul风格1.…

wps 运行宏 获取所有的表格

1、 需求&#xff1a; 需要修改word里面的表格样式&#xff0c;表格大概有几百个 2. wps 不支持批量处理&#xff0c;需要使用到宏&#xff0c;下面这个是从其他页面找到的获取所有的表格 测试可以使用。步骤 复制下面的代码到&#xff1a; WPS的工具 --》 开发工具 --》VB编辑…