react custom hooks

透過5個好用的custom hooks了解react custom hooks的活用

Juo Penguin
2 min readAug 27, 2020

在react 16.8新增了重要的hooks,有useState, useEffect, useReducer…等,讓原本的Function stateless的component瞬間活起來,不用再透過class component才能夠儲存和操作state,這次要介紹幾個自己常用的custom hooks,來看看hooks之間的互相組合搭配。

索引index

useToggle: 切換開關

useFetch: 把 fetch 包裝起來

useSelector: 處理select行為和狀態

useInternal: 做個計時器

useDelayCallback: 防止連點機制且晚一點再觸發

useToggle: 切換開關

儲存開關狀態,並提供切換開關的callback,僅單純用到useState來儲存toggle狀態

useFetch

將fetch的response存在state中,只要state有變化就渲染組件,並且多了loading的state,在fetch一開始就將其設為true,fetch完(成功or失敗)才把loading設為false。

用useFetch來方便管理fetch的資料處理,不用每次都重寫一遍。
備註: 範例使用JSONplaceholder的API

useSelector: 處理select行為和狀態

儲存select 的value ,並提供handleSelect的callback給組件使用,此useSelector的寫法支援多個select

useInternal: 做個計時器

在hook儲存和觸發interval相關的行為,並且能夠在計時完畢的那一刻觸發額外的callback,方便用來作為定時更新的API或其他行為的hook

useDelayCallback: 防止連點機制且晚一點再觸發

此hook內建timeout機制,在每一次觸發callback都會清除上一次的timeout的callback並新建一個timeout的callback,如果使用者沒有再次觸發下一個callback,該timeout才會成功觸發其中的callback。

例如timeout是500ms,在500ms之內的每一次觸發都會把上一次的callback清除掉,只會剩下最後一個callback

--

--

Juo Penguin
Juo Penguin

Written by Juo Penguin

不挑食的雜食者,近期的目標是瘦10公斤。

No responses yet