iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0

如果有錯誤,歡迎留言指教~ 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:

  1. https://zh-hant.reactjs.org/docs/hooks-custom.html

上一篇
Day 17 - useReducer + useContext = Redux?
下一篇
Day 19 - 效能優化,避免過度 render state
系列文
以 React 為主的那些前端事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言