網(wǎng)站首頁 編程語言 正文
1.useEffect
useEffect使用JSON.stringfy進(jìn)行過濾,避免重復(fù)執(zhí)行
const [list, setList] = useState<Array<string>>([]);
useEffect(() => {
console.log('123');
}, [JSON.stringify(list)])
// 偽代碼,改變list
list = [1, 2, 3]
將數(shù)組直接放入依賴數(shù)組可能不會(huì)按預(yù)期工作,因?yàn)閿?shù)組比較是基于引用而不是內(nèi)容。也就是說,如果數(shù)組引用沒有變,即使數(shù)組內(nèi)容發(fā)生了變化,副作用也不會(huì)重新運(yùn)行。或者數(shù)組內(nèi)餓哦那個(gè)沒有改變但是引用卻發(fā)生變化時(shí),會(huì)重復(fù)執(zhí)行。但需要注意的是,JSON.stringify 可能會(huì)影響性能,特別是在大型數(shù)組或頻繁更新的情況下。
2.useMemo
子組件包裹一個(gè)memo,但是會(huì)重新渲染, 因?yàn)槎x的info是const定義的一個(gè)局部變量,每次重新渲染都是重新定義一個(gè)新的info,然后子組件進(jìn)行淺層比較時(shí)候,info永遠(yuǎn)是不一樣的,所以就會(huì)重新渲染。如果子組件比較復(fù)雜的情況下,那么就會(huì)對頁面性能產(chǎn)生影響
const Child = memo( () => {
console.log('我是子組件')
return <p>我是子組件</p>
})
function Parent() {
const [show,setShow] = useState(true)
const info = {
name: 'Even',
age: 22
}
return(
<div>
<Child info={ info } />
<button onClick={ () => setShow(!show) }>點(diǎn)擊更新狀態(tài)</button>
</div>
)
}
優(yōu)化:
const info = useMemo( () => {
return {
name: 'Even',
age: 22
}
},[])
useMemo可運(yùn)用于復(fù)雜計(jì)算邏輯的場景
原文鏈接:https://blog.csdn.net/qq_44742090/article/details/131525348
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2023-11-23 pyside6打開文件夾路徑或選擇文件的方式分享
- 2023-03-27 Python?tkinter中l(wèi)abel控件動(dòng)態(tài)改變值問題_python
- 2022-08-19 淺談tensorflow與pytorch的相互轉(zhuǎn)換_python
- 2022-12-03 C++可擴(kuò)展性與多線程超詳細(xì)精講_C 語言
- 2022-06-02 Kubernetes部署實(shí)例并配置Deployment、網(wǎng)絡(luò)映射、副本集_云和虛擬化
- 2023-07-10 String.format()格式化輸出
- 2022-07-14 python求解三角形第三邊長實(shí)例_python
- 2022-07-18 BeanUtils工具類
- 欄目分類
-
- 最近更新
-
- 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)證過濾器
- 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)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支