網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
import React, { useState, useEffect, useRef } from "react";
import { Button } from 'antd';
let prev1,
prev2;
const Demo = function Demo() {
let [num, setNum] = useState(0);
let box1 = useRef(null),
box2 = React.createRef();
if (!prev1) {
// 第一次DEMO執(zhí)行,把第一次創(chuàng)建的REF對(duì)象賦值給變量
prev1 = box1;
prev2 = box2;
} else {
// 第二次DEMO執(zhí)行,我們驗(yàn)證一下,新創(chuàng)建的REF對(duì)象,和之前第一次創(chuàng)建的REF對(duì)象,是否一致?
console.log(prev1 === box1); //true useRef再每一次組件更新的時(shí)候(函數(shù)重新執(zhí)行),再次執(zhí)行useRef方法的時(shí)候,不會(huì)創(chuàng)建新的REF對(duì)象了,獲取到的還是第一次創(chuàng)建的那個(gè)REF對(duì)象!!
console.log(prev2 === box2); //false createRef在每一次組件更新的時(shí)候,都會(huì)創(chuàng)建一個(gè)全新的REF對(duì)象出來(lái),比較浪費(fèi)性能!!
// 總結(jié):在類組件中,創(chuàng)建REF對(duì)象,我們基于 React.createRef 處理;但是在函數(shù)組件中,為了保證性能,我們應(yīng)該使用專屬的 useRef 處理!!
}
useEffect(() => {
console.log(box1.current);
console.log(box2.current);
});
return <div className="demo">
<span className="num" ref={box1}>{num}</span>
<span className="num" ref={box2}>哈哈哈</span>
<Button type="primary" size="small"
onClick={() => {
setNum(num + 1);
}}>
新增
</Button>
</div>;
};
原文鏈接:https://blog.csdn.net/weixin_50379372/article/details/131318320
- 上一篇:沒(méi)有了
- 下一篇:沒(méi)有了
相關(guān)推薦
- 2022-10-12 redis刪除指定key的實(shí)現(xiàn)步驟_Redis
- 2022-07-17 C語(yǔ)言超詳細(xì)講解指針的使用_C 語(yǔ)言
- 2023-05-23 Golang拾遺之實(shí)現(xiàn)一個(gè)不可復(fù)制類型詳解_Golang
- 2022-09-23 Android?如何獲取傳感器的數(shù)據(jù)方法詳解_Android
- 2022-10-19 Python?變量教程私有變量詳解_python
- 2024-03-22 springboot報(bào)錯(cuò)Error creating bean with name ‘dataSou
- 2023-04-01 C++11中強(qiáng)類型枚舉的使用_C 語(yǔ)言
- 2022-08-17 C++詳解Primer文本查詢程序的實(shí)現(xiàn)_C 語(yǔ)言
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支