React Hooks學習之旅五:useMemo解決子元件重複執行問題
子元件重複執行對效能損耗非常大。
在src資料夾下新建Example7.js:
import React, { useState } from 'react';
function Example7(){
const [xiaohong,setXiaohong] = useState('小紅在代課狀態');
const [zhiling,setZhiling] = useState('志玲在代課狀態');
return (
<>
<button onClick={()=>{setXiaohong(new Date().getTime())}}>小紅</button>
<button onClick={()=>{setZhiling(new Date().getTime()+'志玲向我們走來')}}>志玲</button>
<ChildComponent name={xiaohong}>{zhiling}</ChildComponent>
</>
)
}
function ChildComponent({name,children}){
function changeXiaohong(){
console.log('她來了她來了,小紅向我們走來了');
return name+',小紅向我們走來了';
}
const actionXiaohong = changeXiaohong();
return (
<>
<div>{actionXiaohong}</div>
<div>{children}</div>
</>
)
}
export default Example7;
執行效果:
可以發現當點選'志玲'時也會呼叫changeXiaohong方法。
使用useMemo優化效能
在Example.js中引入useMemo,給changeXiaohong新增執行條件:
import React, { useState,useMemo } from 'react';
/**表示只有當name發生變化時才執行changeXiaohong方法,這裡的name就是xiaohong */
const actionXiaohong = useMemo(()=>changeXiaohong(),[name]);
執行效果:
可以發現當點選'志玲'時不會再執行changeXiaohong方法了。
相關文章
- 解決spring security自定義filter重複執行問題SpringFilter
- 測試平臺系列(82) 解決APScheduler重複執行的問題
- JVM學習(五) -執行子系統JVM
- Vue echarts 繫結事件重複執行問題VueEcharts事件
- 元件複用傳值(待解決問題)元件
- 解決winform窗體重複建立問題ORM
- 用滑動視窗來解決最長無重複子串問題
- 快速解決mongodb出現id重複問題MongoDB
- element UI元件樣式重複問題UI元件
- react 學習 問題React
- React Hooks 鉤子特性ReactHook
- Java學習(28)—(執行緒的控制/生命週期/解決安全問題)Java執行緒
- React Hooks的學習筆記ReactHook筆記
- React Native填坑之旅--使用react-redux hooksReact NativeReduxHook
- 解決Linq.ToDictionary()時的鍵重複問題
- 解決alertmanager重複傳送訊息的問題
- 解決生產日誌重複列印的問題
- react onClick自執行問題React
- 解決react useEffect中的內容被執行兩次的問題React
- python學習之旅(五)Python
- Java IO 建立檔案解決檔名重複問題Java
- 解決 HttpServletRequest 的輸入流不能重複讀的問題HTTPServlet
- React教程:元件,Hooks和效能React元件Hook
- LeetCode題解(1668):最大重複子字串(Python)LeetCode字串Python
- React-hooks 父元件透過ref獲取子元件資料和方法ReactHook元件
- 解決jenkins執行磁碟滿的問題Jenkins
- 執行 shell 指令碼 \r 問題解決指令碼
- Pytest學習(十三)- 重複執行之pytest-repeat的使用
- 解決RabbitMQ訊息丟失與重複消費問題MQ
- mysql執行truncate drop 時卡死問題解決MySql
- Python執行緒安全問題及解決方法Python執行緒
- 一行程式碼解決求重問題行程
- 叢集多機部署時定時任務重複執行問題
- react篇章-React 元件-複合元件React元件
- 分散式環境下利用快取解決重複性問題分散式快取
- 透過 Pulsar 原始碼徹底解決重複消費問題原始碼
- react hooks 如何自定義元件(react函式元件的封裝)ReactHook元件函式封裝
- gRPC入門學習之旅(五)RPC