如果有錯誤,歡迎留言指教~ Q_Q 還沒寫完辣
除了用 React 幫你定義的 Hook
你也可以創造自己的 Hook
當你發現有可以共享的邏輯時,就可以把他再拉出來
不然就放在 component
而命名開頭也是應該是為 use ,例如: useTabs
Custom Hook 的回傳,就像是 usestate 一樣可以是 [], {}, string ...
import { useState, useEffect } from 'react';
function useFriendStatus(friendID) {
const [isOnline, setIsOnline] = useState(null);
useEffect(() => {
function handleStatusChange(status) {
setIsOnline(status.isOnline);
}
ChatAPI.subscribeToFriendStatus(friendID, handleStatusChange);
return () => {
ChatAPI.unsubscribeFromFriendStatus(friendID, handleStatusChange);
};
});
return isOnline;
}
ref: