-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_Hooks
- 戻る(Reactの該当節を参照)
-
React 16.8で正式版として登場した。
-
関数コンポーネントから使える新しい API
- API 上はuseから始まる名前のただの関数
- state等の機能をfunctionalコンポーネントでも使用可能にする。
- 従来は、classコンポーネントでしか使用できなかった。
-
Redux を置き換えるものではない。
-
React開発チームは、
「長期的には、Hooksが React のコンポーネントを書く
際の第一選択となることを期待しています。」と言っているので、今後のスタンダードになると予想される。
-
Hooksは裏で配列を持ち、それを順番に呼び出している。
-
React Fiber(Reactの該当節を参照)のHooks版として実装されている。
-
呼び出す順番や回数がかわると問題が起きる。
-
参考
- React HooksのuseStateがどういう原理で実現
されてるのかさっぱりわからなかったので調べてみた
https://sbfl.net/blog/2019/02/09/react-hooks-usestate/
- React HooksのuseStateがどういう原理で実現
Hooksを使用する際の規則
- Hooksは必ずコンポーネント中の一番上(トップレベル)に定義する。
- HooksはReactの関数コンポーネントの中だけで呼ぶ。
- 禁止事項
- ifやforのブロックの中での呼び出し
- render以外のタイミングで呼び出す
- クラスコンポーネントに頼らなくてもstateを持つことができる。
- useStateは、現在のstateとsetState関数を返す関数
-
useStateの亜種
-
ReduxのReducerとは少々違う。
- useStateよりも複雑なstateを管理するのに役立つ。
- Reduxがグローバルなstoreを提供し、アプリケーションのデータを集中管理する。
- useReducer は特定のコンポーネントにローカライズされている。
- バケツリレー(prop drilling)問題を解決する。
- React.createContext()(Reactの該当節を参照)で作ったコンテキストを取得できるようになる。
- アプリケーション全体のデータはReduxで管理したほうが良い。
-
レンダリングの後に処理を動作させることができる。
-
従来のReactの
- componentDidMount
- componentDidUpdate
- componentWillUnmount
に相当する。
-
useLayoutEffect
レンダリング完了前に呼び出される。
- 値がメモ化できる。
- 引数が前回値と同じ場合に計算を
スキップして結果を再利用できる。
- 共通のロジックをコンポーネント間での再利用を可能にする。
- useXXXと言うSFCを実装してそれを利用する。
-
useCallback
useMemoの亜種 -
useRef
React.createRef(Reactの該当節を参照)のオブジェクト(refs)を返す。 -
useDebugValue
React DevTools 内にカスタムフックに関するラベル付きデバッグメッセージを表示
-
React16.8 というものがリリースされたらしい - bamch0h’s diary
http://bamch0h.hatenablog.com/entry/2019/02/08/001057 -
最近Reactを始めた人向けのReact Hooks入門
https://sbfl.net/blog/2019/11/12/react-hooks-introduction/ -
React Hooksとは?各Hooksの使い方やルールを紹介
https://microcms.io/blog/what-is-react-hooks/
- フックの導入
https://ja.reactjs.org/docs/hooks-intro.html - フック早わかり
https://ja.reactjs.org/docs/hooks-overview.html
-
React(公式)の記事の翻訳
- React Hooksの概要
https://qiita.com/tatane616/items/01d6358be5e4e4779232 - React Hooks導入の動機
https://qiita.com/tatane616/items/9d667e32b6f82f9f7a9f
- React Hooksの概要
-
React Reduxに相当するものをhooksでやってみる
https://qiita.com/eretica/items/beb683d7611de1f8746a -
5分でわかるReact Hooks
https://qiita.com/Mitsuzara/items/98d1bc4a83265a764084 -
【React】ざっくり入門(Hooks)
https://qiita.com/k-penguin-sato/items/b27e3936f8d383a4dbc7 -
おまえはReact hooksを知っているか
https://qiita.com/hystking/items/2a082ee86dc0b66793cb -
React Hooks超入門
https://qiita.com/ossan-engineer/items/99739b60b391c8013928- React Hooksがよくわかる4つの例
https://qiita.com/ossan-engineer/items/a183bade1e37174f0459 - useReducerフック活用法
https://qiita.com/ossan-engineer/items/1192c224e4252ec0f421 - useEffectフックのしくみ
https://qiita.com/ossan-engineer/items/740425a0df937a47e093 - useContextのしくみ
https://qiita.com/ossan-engineer/items/8f2640e4ee053b353943 - React Hooksでデータを取得する方法
https://qiita.com/ossan-engineer/items/c3853315f59dc20bc9dc
- React Hooksがよくわかる4つの例
-
【暫定版】React16.8.6の個人的なベストプラクティス
https://qiita.com/katatu801/items/89952b4ea8ca62dbdc73 -
宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる
https://qiita.com/erukiti/items/fb7bcbd9d79696579d06 -
🎉React 16.8: 正式版となったReact Hooksを今さら総ざらいする
https://qiita.com/uhyo/items/246fb1f30acfeb7699da
- React Hooks での状態管理と副作用の表現
https://mizchi.hatenablog.com/entry/2018/10/26/235323 - React Hooks をどう使っていくか
https://mizchi.hatenablog.com/entry/2018/11/09/125252 - 実践: React Hooks
https://mizchi.hatenablog.com/entry/2019/02/08/154010
移行メモ
- 参考の見出し「React」はページ内の他の記述と紛らわしいため 「React(公式)」とした。
- PukiWiki のページ内アンカ(
#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名の該当節を参照)」の形に置き換えた。
Tags: 移行, React, Hooks, useState, useEffect, useContext, useReducer, 関数コンポーネント
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。