React: ライフサイクルメソッド/時間的凝集とhook/機能的凝集とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > React: ライフサイクルメソッド/時間的凝集とhook/機能的凝集の意味・解説 

React: ライフサイクルメソッド/時間的凝集とhook/機能的凝集

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/26 17:40 UTC 版)

関心の分離」の記事における「React: ライフサイクルメソッド/時間的凝集とhook/機能的凝集」の解説

Reactライフサイクルメソッドもたらした機能的凝集度低さhookによって克服しSoC実現している。 ライフサイクルメソッド周期ライフサイクル)のある時点自動的に呼び出されるメソッドである。例えコンストラクタインスタンス作成時のメソッドであり、onMemberChangedメソッドメンバ更新時に毎回呼び出されるメソッドである。ライフサイクルメソッドとして時間的に適切な処理を実装すれば、ある時点おこなわれる処理が一か所に集約され時間的凝集度が高いコードになる(時間的なSoCおこなわれている)。 例えタイマー2つによるカウントダウンUI考える。ライフサイクルメソッド利用する場合開始時(constructor)でcount変数用意しUI作成時(componentDidMount)にタイマーセットしレンダリング時(render)にカウント表示更新UI破棄時(componentWillUnmount)にタイマー破棄するclass Clock extends React.Component { constructor(props) { super(props); this.state = { countA: 0, countB:0 }; } componentDidMount() { this.timerIDa = setInterval(() => this.tickA(), 1000) this.timerIDb = setInterval(() => this.tickB(), 1000) } componentWillUnmount() { clearInterval(this.timerIDa); clearInterval(this.timerIDb); } tickA() { this.setState({ countA: this.state.countA + 1}); } tickB() { this.setState({ countB: this.state.countB + 1}); } render(){ return

now count: A/{this.state.countA} - B/{this.state.countB}
}} ある時点何が起きるかが一見してわかる(時間的凝集度が高い)一方機能的に見ると一連の処理を時間ごとに別の関数切り出していることになる。また1つのサイクルメソッドの中にタイマーAの処理とタイマーBの処理が混在することになる。このようにライフサイクルメソッド用いたコード時間的凝集度が高くて機能的凝集度は低いといえる。そこでReactでは機能的凝集度高めhook名付けられ機能導入したhookライフサイクルメソッドのようなclass interface実装ではなく関数暗示的状態(非透過的な参照)を利用している。コンポーネントあたり1つしか持てないライフサイクルメソッド異なり関数であるhook何度でも利用ができる。また各hook関数状態の保持やライフルサイクルの管理といった個別機能を持つため、機能Aに必要なすべてのhookを1箇所集めることができる。すなわち機能的凝集度が高い状態、機能的なSoC実現できるfunction Clock() { // Timer A ///////////////////////////////////////// const [countA, setCountA] = useState(0); useEffect(()=>{ const id = setInterval(() => setCountA(n=>n+1), 1000); return ()=> clearInterval(id) }, []); // Timer A ///////////////////////////////////////// // Timer B ///////////////////////////////////////// const [countB, setCountB] = useState(0); useEffect(()=>{ const id = setInterval(() => setCountB(n=>n+1), 1000); return ()=> clearInterval(id) }, []); // Timer B ///////////////////////////////////////// return
now count: A/{countA} - B/{countB}
} "It can take input from the user and display information, but it should not manipulate the information other than to format it for display." p.96

※この「React: ライフサイクルメソッド/時間的凝集とhook/機能的凝集」の解説は、「関心の分離」の解説の一部です。
「React: ライフサイクルメソッド/時間的凝集とhook/機能的凝集」を含む「関心の分離」の記事については、「関心の分離」の概要を参照ください。

ウィキペディア小見出し辞書の「React: ライフサイクルメソッド/時間的凝集とhook/機能的凝集」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「React: ライフサイクルメソッド/時間的凝集とhook/機能的凝集」の関連用語

React: ライフサイクルメソッド/時間的凝集とhook/機能的凝集のお隣キーワード

Reach 4 the Dre@m!

Reach For The World!

ReachDSL

React

React Form

React Native

React: ライフサイクルメソッド/時間的凝集とhook/機能的凝集

Reaction

Reactor

Read

Read For Ownership

Read Not Dead

Reade

検索ランキング

   

英語⇒日本語
日本語⇒英語
   



React: ライフサイクルメソッド/時間的凝集とhook/機能的凝集のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの関心の分離 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS