網站首頁 編程語言 正文
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執行,把第一次創建的REF對象賦值給變量
prev1 = box1;
prev2 = box2;
} else {
// 第二次DEMO執行,我們驗證一下,新創建的REF對象,和之前第一次創建的REF對象,是否一致?
console.log(prev1 === box1); //true useRef再每一次組件更新的時候(函數重新執行),再次執行useRef方法的時候,不會創建新的REF對象了,獲取到的還是第一次創建的那個REF對象!!
console.log(prev2 === box2); //false createRef在每一次組件更新的時候,都會創建一個全新的REF對象出來,比較浪費性能!!
// 總結:在類組件中,創建REF對象,我們基于 React.createRef 處理;但是在函數組件中,為了保證性能,我們應該使用專屬的 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
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-05-22 Nginx反向代理與負載均衡概念理解及模塊使用_nginx
- 2022-12-05 關于EF的Code?First的使用以及踩坑記錄_實用技巧
- 2022-11-20 使用Docker部署openGauss國產數據庫的操作方法_docker
- 2023-02-01 Flutter?彈性布局基石flex算法flexible示例詳解_Android
- 2023-07-10 Spring事務的傳播機制
- 2022-09-30 python計算列表元素與乘積詳情_python
- 2022-08-30 MongoD管理數據庫的方法介紹_MongoDB
- 2022-07-26 Python標準庫之日期、時間和日歷模塊_python
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支