= (props) => {
const { users, isLoading, error } = useUsers();
return (
{props.company.name}
{isLoading ? (
'Loading ...'
) : error !== undefined ? (
) : (
{users.map((user) => (
- {user.name}
))}
)}
);
};
```
---
### 他の Hook
よく使うもののみ
- useContext
- グローバルな状態を扱える
- useReducer
- Redux みたいなやつ
- useMemo
- コンポーネント内で定義する変数をメモ化できる
- useCallback
- 関数を memo 化するための hook
---
---
## 実際使っての感想
---
### pros
- useState や useReducer から返される値が変化するだけなのでより宣言的に書けてよい
- class を使わないので this も使うことがなくなってよい
- useContext と useReducer で実質 Redux みたいなこともできる
- ロジックは hooks に寄せて単体テスト、見た目は Regression Test の体験がよい
- TypeScript との相性がよい
---
### cons
- useEffect で気をつけないと無限ループ
- 配列でない値が `T | undefined` になりがち(hooks に限ったことではない)
---
### 最近のなやみごと
Hooks によって Container Component がいらなくなると思っていたけれど、useState や useEffect は結局副作用なので Presentational Component と Container Component に分けたほうがいいのではという気持ちになってきた
---
### おわりに
Algebraic Effect との関係などを調べて発表したかったのですが、力及ばず。
Promise を throw するで話題になった Concurrent mode も気になってます。