首页 > 其他分享 >一次性初始化/重新挂载/便捷类型/优化技巧

一次性初始化/重新挂载/便捷类型/优化技巧

时间:2024-04-19 11:35:17浏览次数:26  
标签:初始化 code resource 便捷 React useState 组件 挂载

React中一次性初始化

在React中进行一次性初始化的两种推荐方案如下:

方案 1 使用useState进行初始化:

javascriptCopy code

const [resource] = React.useState(() => new Resource());

这种方法通过状态的惰性初始化来创建资源,代码直观且易于理解。

方案 2 使用useRef保持实例不变:

javascriptCopy code

const resource = React.useRef(null); if (!resource.current) { resource.current = new Resource(); }

尽管这种方法有效,但相比方案1,其直观性稍逊一筹。

使用useState而不是useMemo的原因详见文章:使用 useState 进行一次性初始化

使用 key 重新挂载组件

当需要根据props变化重新挂载组件时,可以通过改变组件的key属性来实现:

javascriptCopy code

<DetailView key={selected.id} initialEmail={selected.email} />

更多详情可查看:利用Props和State

便利写法

声明状态及其设置函数时指定类型:

javascriptCopy code

const [age, setAge] = React.useState<number>();

React优化技巧

React Developer Tools

启用“Highlight Updates”复选框,以绿色闪烁的形式显示重新渲染的组件,帮助识别性能瓶颈。

使用console.time测量与useMemo优化

利用console.time测量慢速操作,比较使用useMemo前后的性能差异。

why-did-you-render

监控并记录组件每次重新渲染的详细原因,例如变化的props或state,帮助优化渲染性能。

react-window

采用虚拟列表渲染技术优化长列表的渲染性能。

代码分割

使用React.lazyloadable-components进行代码分割,按需加载组件,提升应用加载速度和性能。

标签:初始化,code,resource,便捷,React,useState,组件,挂载
From: https://www.cnblogs.com/beilo/p/18145441

相关文章

  • C++ - 中必须使用初始化列表初始化的四种情况
    1.必须使用初始化列表初始化一个引用成员;classCBase{public:CBase(inta):m_a(a)//正确,m_a是一个变量的引用,必须通过初始化列表初始化{//m_a=a;//错误cout<<"m_a:"<<m_a<<endl;}public:int&m_a;}; 2.......
  • Ubuntu系统初始化
    修改root密码sudopasswdsuroot网卡管理#自动获取IPdhclientens33安装sshsudoaptupdatesudoaptinstallopenssh-serversudosystemctlstatussshd防火墙管理#Ubuntu自带一个配置防火墙配置工具,称为UFW。如果防火墙在你的系统上被启用,请确保打开了......
  • 立创泰山派学习06--TF挂载及测试
    1、关机(poweroff)断电,再插入TF卡2、开机,查看内核日志dmesg|grepmmcdmesg-c(查看并清除内核日志)      或者fdisk-l    3、创建一个目录,用于挂载TF卡sudo mkdir/media/sdcard      或者直接挂载到/mnt/sdcar......
  • day04_我的Java学习笔记 (数组的静态初始化、数组的动态初始化,debug调试等)
    1.数组1.1数组的定义那python怎么定义数组的呢?Java:String[]names={"zhangsan","lisi","wangwu"}Python:names=["zhangsan","lisi","wangwu"]在python中,列表可以存储不同类型的数据,而在Java中,数组只能存储相同类型的数据。1......
  • 在Linux中,如何使用fstab文件配置自动挂载?
    在Linux系统中,/etc/fstab是一个非常重要的系统配置文件,用于定义文件系统及其挂载点,以及它们如何在系统启动时自动挂载。当你想要确保某些磁盘分区或者存储设备在系统启动后自动加载并可用时,你需要编辑这个文件。以下是通过/etc/fstab配置自动挂载的详细步骤:1.确认设备和挂载......
  • 关于链接脚本和汇编导致的数据段初始化错误的问题
    第一个链接脚本存在data段初始化失败的问题,第二个link脚本增加了At>flash就可以正常的运行了,是为什么?如果只是链接错误的话,那么汇编从ram向同地址的ram中搬运为什么就会运行出错?链接脚本分别如下:有错误的类型MEMORY{flash(rxai!w):ORIGIN=0x20000000,LENGTH......
  • fstab 与移动硬盘挂载
    参考:浅析fstab与移动硬盘挂载方法一个典型的fstab结构如下:#<device><dir><type><options><dump><fsck>/dev/sda1/ext4noatime01/dev/sda2......
  • centos 7 新增数据盘,lvm分区,xfs文件系统 永久挂载
    centos7新增数据盘,lvm分区,xfs文件系统永久挂载步骤1:连接数据盘将新的数据盘连接到你的CentOS7服务器上。确认系统已经检测到了新的磁盘,你可以使用lsblk命令查看 步骤2:创建物理卷(PhysicalVolume)使用fdisk或parted工具对新磁盘进行分区。 使用pvcreate......
  • 挂载命名空间机制
    原文:https://blog.mufanc.xyz/posts/4104300991/何为「挂载」?  手册中对于挂载的描述是这样的:AllfilesaccessibleinaUnixsystemarearrangedinonebigtree,thefilehierarchy,rootedat/.Thesefilescanbespreadoutoverseveraldevices.Themountcom......
  • vue新项目初始化
    vue新项目初始化vite构建#创建新项目npmcreatevue@latest#安装依赖npminstall#启动项目npmrundev#网络请求模块npmiaxios#css预处理器sassnpmisass#安装elementUI框架npminstallelement-plus--save#安装normalize.css样式初始化文件......