簡體   English   中英

使用 React `useCallback` 掛鈎的依賴項作為回調的 arguments 是否更高效?

[英]Is it more performant to use the dependencies of a React `useCallback` hook as arguments of the callback?

假設我在 React 中有一個回調 function ,它使用變量abc 我想知道使用useCallback鈎子的最佳方法。

我可以創建一個不接受 arguments 的回調,並使用[a,b,c]作為依賴項數組。

const onMutate = useCallback( () => {~~~~} , [a,b,c] )
~~~~ onPress={onMutate}

或者我可以創建一個回調,它采用 arguments (a,b,c)並且有一個空的依賴數組。

const onMutate = useCallback( (a,b,c) => { ~~~~} , [] )
~~~~ onPress={() => onMutate(a,b,c)}

前者每次新建回調function,但onPress中沒有匿名function。

在后者中,回調 function 只創建一次,但每次在 onPress 中都會創建一個匿名的 function。

哪種情況更好?

首先要記住:使用useCallback並不總是一個好的案例,例如 Kent C。 多茲說

但是,如果您真的想要 go 和useCallback ,那么只有在useCallback中的值時才有意義。 看這個CodeSandbox: https://codesandbox.io/s/quizzical-dawn-glqlg


話雖如此,如果您確定要使用useCallback ,那么您將采用哪種方式並不重要,因為在最好的情況下,所有這三個變量都會在第一次運行時被記憶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM