React 类组件和hooks函数式组件对比

2023-10-26

在学习时,先接触的class组件之后才是带有hooks的函数式组件。可能是自己大脑更偏向于有了这种方式解决干嘛又要学另外的,自己也比较清楚this的指向问题,所以就更偏向于使用class组件。可是,视频课以及各种文章都在推崇hooks,打算静下心来了解一下两者区别(目前未进行过react项目开发,仅仅代表当前阶段的认知,轻喷~)

React的class组件和有hooks后的函数式组件都可以进行内部状态保存及生命周期的执行。

类组件 函数式组件
性能 class编译es5后会多出一堆辅助函数(继承React.Component) 只有一个createElement
可读性 (1)connect、mapXXXToProps、subscribe、dispatch还有各种生命周期钩子;(2)通过箭头函数绑定this (1)清一色的useXXX:useState,useReducer,useEffect,setState;(2)内部不存在this,通过隐士调用即可
封装性 (1)state和生命周期函数最终都要统一放到一起;想要将业务代码抽离到组件外部,只能通过回调函数调用setState对状态进行修改或者将状态交由redux管理;(2)使用多个context需要consume层层嵌套 可自定义hook(1)可以将state、生命周期钩子根据业务进行分离;(2)const context = useContext(…)内部直接使用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React 类组件和hooks函数式组件对比 的相关文章

随机推荐

  • ChromeDriver/Selenium/Python浏览器自动化初体验

    目录 ChromeDriver安装 Selenium安装 Python脚本 ChromeDriver安装 在浏览器地址栏输入 查看chrome当前版本 chrome version 在浏览器地址栏输入 查找chrome当前版本的Chrome
  • linux 下解压及创建 tar.xz

    一 在linux 下解压 tar xz 文件步骤 以linux 2 6 30 tar xz 文件为例进行讲解 1 xz d linux 2 6 30 此时会生成linux 2 6 30 tar 文件 PS xz 命令解压时 加 k 参数可以
  • windows安装linux

    https www cnblogs com liuqingzheng p 16271895 html 咱们安装linux系统是centos7 准备工作 安装软件 vmware 虚拟机 官网下载地址 下载 VMware Workstation
  • 从哪里可以获取QT应用开发用到的图标资源?

    Qt官方网站 Qt官方网站提供了大量的Qt应用开发的图片资源 您可以通过访问Qt官方网站并搜索 Qt icons 或 Qt images 来找到它们 https www qt io Qt Creator Qt Creator是Qt的官方集成
  • hanlp2.x使用与语义角色标注任务

    hanlp 2 x的文档逻辑不太好看 这里记录一下语义角色标注任务的相关代码与文档中的重要内容 hanlp github地址 https github com hankcs HanLP hanlp各种任务缩写 https hanlp han
  • stata外部命令大全(包含面板门槛、系统GMM、空间计量、Pvar、中介效应等)

    1 数据来源 自主整理 2 时间跨度 无 3 区域范围 无 4 指标说明 该些外部命令包含面板门槛 系统GMM 空间计量 pvar 中介效应等涵盖全部 以下是部分命令截图 空间计量 系统GMM 动态广义矩估计 使用介绍 各位朋友使用时把pl
  • find_package()函数

    find package函数 引言 1 find package用法 2 find package原理 3 A required library with LAPACK API not found 错误解决 4 添加findpackage查
  • Java 应用配置 GC 日志输出内容

    Java 应用配置 GC日志输出文件 GC 日志部分配置项 基本 GC 日志信息 XX PrintGCDetails XX PrintGCDateStamps XX PrintGCTimeStamps GC 后对象年龄分布信息 XX Pri
  • 手写实现ajax异步调用

    一个最重要的文件 ajax js function send request callback urladdress isReturnData var xmlhttp getXMLHttpRequest xmlhttp onreadysta
  • 万字长文解读Stable Diffusion的核心插件—ControlNet

    目录 一 介绍 二 使用方法 三 ControlNet结构 1 整体结构 2 ControlLDM 3 Timestep Embedding 4 HintBlock 5 ResBlock 6 SpatialTransformer 7 SD
  • 华为OD机试真题-预定酒店【2023Q2】【JAVA、Python、C++】

    题目描述 放暑假了 小明决定到某旅游景点游玩 他在网上搜索到了各种价位的酒店 长度为n的数组A 他的心理价位是x元 请帮他筛选出k个最接近x元的酒店 n gt k gt 0 并由低到高打印酒店的价格 备注 1 酒店价格数组A和小明的心理价位
  • SSM框架做前后端分离项目

    目录 步骤 1 先运行 看到效果 再学习 步骤 2 模仿和排错 步骤 3 本知识点效果 步骤 4 jquery min js 步骤 5 json中文问题 步骤 6 CategoryController 步骤 7 submit html 步骤
  • http://www.vcipl.okstate.edu/publications.html(资源转载)

    Visual Computing and Image Processing Lab Oklahoma State University Imaging Processing nferencing and Learning Home
  • UE4模型轮廓描边及轮廓发光

    参考自 https zhuanlan zhihu com p 81310476 1 在项目设置里把Custom Depath Stencil Pass改为Enabled with Stencil 这样蒙版值才会生效 2 在模型Renderi
  • 基于Lua的选择排序算法实现

    选择排序思想的核心 首先在未排序序列中找到最小 大 元素 存放到排序序列的起始位置 再从剩余未排序元素中继续寻找最小 大 元素 然后放到已排序序列的末尾 重复第二步 直到所有元素均排序完毕 说直白点 以从小到大排序来说 就是 第一轮找到最小
  • scrapy调试正常,输出为空的原因。。

    scrapy调试正常 情况 从xx网站抓取数据 内容正常 标题我重新处理过 调试也正常 执行爬虫 打印的时候为空 分析如下 1 源代码里是h2 2 xpath里写的是h2 并且调试也能正常抓取到 3 抓取后的数据已经从h2变成了h3 4 把
  • YOLO系列目标检测算法——PP-YOLOE

    YOLO系列目标检测算法目录 文章链接 YOLO系列目标检测算法总结对比 文章链接 YOLOv1 文章链接 YOLOv2 文章链接 YOLOv3 文章链接 YOLOv4 文章链接 Scaled YOLOv4 文章链接 YOLOv5 文章链接
  • linux下.run文件的安装与卸载

    run文件的安装很简单 只需要为该文件增加可执行属性 即可执行安装 以 virtualbox 的安装文件 virtualbox 3 1 6 59338 Linux x86 run为例 只需要输入命令 chmod x virtualBox 3
  • Windows的路由命令

    Route Displays and modifies the entries in the local IP routing table Used without parameters route displays help Syntax
  • React 类组件和hooks函数式组件对比

    在学习时 先接触的class组件之后才是带有hooks的函数式组件 可能是自己大脑更偏向于有了这种方式解决干嘛又要学另外的 自己也比较清楚this的指向问题 所以就更偏向于使用class组件 可是 视频课以及各种文章都在推崇hooks 打算