Day 18 - custom hook

如果有错误,欢迎留言指教~ 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 18 - 取得所有Contract程序范例

>>:  DAY 20:Adapter Pattern,统一不同产品的介面

Day 17 : Add Two Numbers

这一题题目会给我们两个Linked Lists,分别代表两个非负整数。题目要我们把两个数相加後回传一...

Kotlin Android 第2天,从 0 到 ML - Android Studio 开发工具安装及环境设定

前言: 学习kotlin语法,可以使用线上的编译器,也可以用官方的开发工具 IntelliJ IDE...

Day 27 - Greedy

大家好,我是长风青云。原来是27天了,自从我待在家後,对时间的流逝越来越不敏感,乾脆做个月历,放在身...

IT 铁人赛 k8s 入门30天 -- day16 k8s Task Deploy a single instance Mysql use StatefulSet

前言 今天这个章节 要来实作 Deploy a single instance Mysql use ...

[Day 3]开胃沙拉-Python安装及Vagrant虚拟环境架设

在上一篇我们下载完了准备工具後 这篇我们要来开始架设我们的程序环境了 这一篇我们会教大家 如何下载P...