並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 76件

新着順 人気順

useEffectの検索結果1 - 40 件 / 76件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

useEffectに関するエントリは76件あります。 reactreact.jsReact などが関連タグです。 人気エントリには 『過激派が教える! useEffectの正しい使い方』などがあります。
  • 過激派が教える! useEffectの正しい使い方

    ReactのuseEffectは、フックの中でも使い方が難しいものの一つです。そこで、この記事では筆者が考えるuseEffectの望ましい使い方を皆さんに伝授します。 基本原則 技術やその要素の使い方を考えるにあたって、筆者が好んでいるのは基本原則を置いてそれに基づいて判断することです。ということで、この記事ではまず筆者が考えるReactの基本原則を紹介します。 筆者がもっとも重要視する原則は、ReactはUIライブラリであるということです。つまり、ReactにはUIの管理をさせるべきであって、その他のことはReactの役目ではないということです。Reactが難しいと思う人がいる場合、何でもかんでもReactにやらせようとするから余計に難しくなっているのだと思います。 例えばアプリケーションのロジックの管理やそれに付随するステートの管理はReactの役目ではないので、Reactの外部で処理

      過激派が教える! useEffectの正しい使い方
    • useEffect: 基礎から使用すべきでない例まで

      はじめに useEffect について、きっちり調べようと思い調べてみた。公式ドキュメントのまとめ記事になっている。 useEffect 基礎編 useEffect とは Effect を用いるとレンダリングの後にコードを走らせることができ、React 外のシステムの要素と同期することが可能になる。 なぜ必要か まず、React コンポーネントの二種類のロジックについて整理する。 レンダリング レンダリングをする際、コードはpropsとstateを受け取り、変換し、画面で表示したいJSXを返す。コードのレンダリングは結果のみを計算するべきでそれ以上のことをするべきではない。 イベントハンドラ イベントハンドラはコンポーネントの中にある関数で、Input Field の更新やユーザを他の画面へ誘導したり等、単純な計算以上の役割を担う。イベントハンドラはユーザの行動(ボタンクリック等)による、

        useEffect: 基礎から使用すべきでない例まで
      • 【保存版】「そのuseEffectの使い方あってる?」と言われる前に

        参考 目的 プロジェクトで使用されている不適切なuseEffectを減らす 本題 Reactの公式ドキュメントにuseEffectは必要ないかもしれない,というようなページがありとても勉強になったので記事にしようと思いました. データフェッチング アプリのデータフェッチングをuseEffect内で行うのはよく知られている方法です. Bad 💣 function SearchResults({ query }) { const [results, setResults] = useState([]); const [page, setPage] = useState(1); useEffect(() => { // 🔴 Avoid: クリーンアップなしでのフェッチング fetchResults(query, page).then(json => { setResults(json); }

          【保存版】「そのuseEffectの使い方あってる?」と言われる前に
        • React17におけるuseEffectの破壊的変更を理解する

          しばらく前、React 17 RCが発表されました。現行のReact 16に比べて、いくつかの破壊的変更がある一方、新機能が何もないというのが特徴です。Reactチームとしては、新機能が無いとはいえ、破壊的変更も少なくなっておりなるべく16から17へのアップデートを行なってほしいという考えのようです。 この記事では、React 17における破壊的変更のうち、useEffectのクリーンアップのタイミングに関する変更を取り上げます(以下は公式サイトから引用)。 In React 17, the effect cleanup function also runs asynchronously — for example, if the component is unmounting, the cleanup will run after the screen has been updated.

            React17におけるuseEffectの破壊的変更を理解する
          • A Visual Guide to useEffect

            Here is what happens when you try to fetch data directly from the body of a functional component in React 👇 Why does this happen and what tools does React offer to solve this problem? Side effects If your React component affects anything outside of itself, it’s called a side effect. Side effects shouldn’t happen during component render. Therefore they do not belong to the body of a functional com

              A Visual Guide to useEffect
            • 結局 useEffect はいつ使えばいいのか

              useEffectはReactの中でも扱いの難しいフックとして知られています。Reactで開発を行う中でuseEffectを検討するタイミングや適切な使い方について悩んだ経験のある方も多いのではないでしょうか。 本記事では、useEffectの目的を把握し、どのような場合にuseEffectの使用を検討すべきかについて考えていきたいと思います。 コンポーネントの純粋性と副作用 まずuseEffectについて考える前に、コンポーネントの純粋性について理解する必要があります。Reactにおいて純粋性は重要な概念の1つです。 前提として、Reactではすべてのコンポーネントが純関数であることを仮定しています。 Reactは、あなたが書くすべてのコンポーネントが純関数であると仮定しています。 参照:https://ja.react.dev/learn/keeping-components-pure

                結局 useEffect はいつ使えばいいのか
              • useEffectをやめて、Suspenseを使おう

                Reactコンポーネントの開発時、データフェッチは欠かせません。 SPAで開発を行う時、あなたも含めてuseEffect()を使ったことがあるはずです。 あなたがSWRやReact Queryの代わりにuseEffect()を使う理由は、いくつかあるのでしょう。 そんな方のために、Reactが提供する<Suspense>を使ってデータフェッチを行う方法を紹介します。 追記: Suspenseではウォーターフォール問題を解決できないとの指摘について 「Suspenseの実装」に記載のコードを見た限り、ウォーターフォール問題を解決できないとの指摘がありました。 実装の章では問題を解決することではなく、<Suspense>をどのように使うかに焦点を当てました。 具体的な実装方法に踏み込むとテーマから大きく外れてしまう可能性があったためです。 読みやすさを優先した結果、解決のための実装については割

                  useEffectをやめて、Suspenseを使おう
                • useEffectからfetchするときのベストプラクティス - Qiita

                  useEffectの中でfetch (取得系のリクエスト)しないでください。以上です。ご清聴ありがとうございました。いいねと高評価、チャンネル登録よろしくお願いします。 おまけ とはいえ、useEffectの中でデータ取得することを考えなければいけない場合もあります。例えば、React 16をまだ使っている場合とか。React 18以降ならSuspenseがあるので考えなくていいです。 ということで、筆者は最近React 16の世界でどうしてもuseEffectの中でfetchしなければならない場合を最近経験しました。その場合にもできる限りベストプラクティスに従いたいということで、考えたことを紹介します。 まだReact 16系に囚われている方は参考にしてください。また、新しいReactを使っている方はこの記事で紹介することをそのまま実践する必要はありませんが、useEffectのベストプ

                    useEffectからfetchするときのベストプラクティス - Qiita
                  • データフェッチはuseEffectの出番じゃないなら、結局何を使えばいいんだ

                    ショートアンサー React 18 からのフックである、useSyncExternalStore を使えばいいようです。 ※ useEffect がまったくだめだというわけではありません。 ※ クライアントサイドレンダリングのみを考えています。サーバーサイドレンダリングを考慮すると違った答えになるかもしれません。 サンプルコード 次のような useData フックを作ってみます。 JSON API の GET レスポンスを返すシンプルなものです。 実験をしやすいように、リクエスト URL を変えるボタンを置いてあります。 import { useEffect, useState } from "react" export function SearchResults() { const [id, setID] = useState(1) const todo = useData(`http

                      データフェッチはuseEffectの出番じゃないなら、結局何を使えばいいんだ
                    • Next.jsでページ共通の処理をする(useEffectを使う例)

                      Nuxt.jsだとmiddlewareという機能を使うことで、ページの遷移ごとに特定の処理をはさむことができます。 Next.jsで全ページで特定の処理をはさむためには、Appコンポーネント(_app.tsx)にその処理を書くことになります。 Next.jsの_app.tsxに全ページ共通の処理を書く 参考:Next.jsの_app.tsxのカスタマイズ(TypeScript) import type { AppProps } from 'next/app' import { useEffect } from 'react'; function MyApp({ Component, pageProps, router }: AppProps) { + useEffect(() => { + // ここに全ページ共通で行う処理 + },[router.pathname]) return <C

                        Next.jsでページ共通の処理をする(useEffectを使う例)
                      • React の useEffect とクリーンアップ関数の実行タイミングがこれだけで分かる

                        React の useEffect の実行タイミングについて、このように思っていませんか? 依存配列(第2引数として渡す配列)を省略したら、マウント時に、そのあと再レンダーごとに実行される 依存配列に空配列を入れたら、マウント時に実行される 依存配列に値を入れると、マウント時と、値が変わるごとに実行される しかもクリーンアップ関数も絡んで来て、もっと複雑で覚えられない… …そのように考える必要はありません。 実は、useEffect の規則は至ってシンプルで、しかも UI ロジックの頻出の課題を洗練されたパターンに落とし込んで解決してくれます。 エフェクトとクリーンアップの実行タイミングは、以下のように論理的にシンプルな形で捉えることができます。 マウント時 に初回のエフェクトが発火され、アンマウント時 に最後のクリーンアップが実行される。 再レンダリング時 に、前回のエフェクトをクリーン

                          React の useEffect とクリーンアップ関数の実行タイミングがこれだけで分かる
                        • useEffectを使ったデータ取得はベストプラクティスではないです、react-hooks-fetchをお試しあれ

                          useEffectの新しいドキュメントが書かれている途中です。useEffectのタイミングでデータ取得を開始するのは、これまでもベストプラクティスではないと言われていたのですが、React 18のStrict Effectにより再び議論されるようになりました。 今のところ、Reactが提供しているAPIだけですんなり実現する方法はなく、3rd-partyライブラリやフレームワークを使いましょうとなっています。react-hooks-fetchはその一つにならないかと開発してます。 また、他のライブラリも開発してます。比較表を作りました。 ちなみに、以前作っていたuseEffectベースのライブラリはdeprecateしました。こちらの記事にも注釈追記しました。 かいつまんだ紹介しかしませんでしたが、こんな議論を楽しめる方がいらしたら、ぜひReact Fanオンラインコミュニティ(Slac

                            useEffectを使ったデータ取得はベストプラクティスではないです、react-hooks-fetchをお試しあれ
                          • 詳解:フロントエンドの状態とリアクティブ (なぜuseEffect()でsetState()がアンチパターンか)

                            すべての状態をできるだけ減らしたいypresto (プレスト) です。 12月頭に予約してたアドベントカレンダーですが12/23になってしまいました。 LayerXのバクラク事業部では、Webフロントエンド領域もがんばっています!! ということで一筆。 バクラク事業部のエンジニアは、バックエンド・フロントエンドの垣根なくプロダクト開発を手掛けています。各々に得意領域があり、わたしはフロントエンドの改善やコードレビューなども行っています。 そのコードレビューで、「Vueの watch() を使用せずに computed() でリアクティブに書きたいです」 (Reactで言えば useEffect() を避けたい) と指摘させていただいたときに、理解を深めたいとコメントを頂いたこともあり、フロントエンド開発のコアとも言える、リアクティブ (Reactive) な状態管理の話をまとめようと思いま

                              詳解:フロントエンドの状態とリアクティブ (なぜuseEffect()でsetState()がアンチパターンか)
                            • useEffect()内でsetState()するのを減らすテク

                              コンポーネント上の useEffect() (or useLayoutEffect()) で複雑なこと、特に再レンダリングを発生させるsetState()等をすると、deps配列(第2引数)の指定方法などによっては、おかしな挙動を起こしうるのでなるべく避けたいです。何より、テストが面倒なプレゼンテーションロジックは、常にシンプルに保つ方がメンテナンスが容易になります。 追記: これはStateの更新がEvent(setState())を発生させ、さらなるState更新を生むことで、データの流れが複雑になっているというところが本質かなと思います。ReduxじゃなくてもUnidirectional Data Flow(単方向データフロー)は普遍的な概念として有効なはずです。 Unidirectional Data Flowについては画像作りをサボってしまったのでこの記事あたりを参照してください

                                useEffect()内でsetState()するのを減らすテク
                              • useEffectにはコメントをつけよう - Panda Noir

                                「なにがしたいか」をベースにコメントをつけておくと、後で読むときのコストが下がりやすい。 実際にプロダクトコードで書いたことがあるコメント↓ (簡略化してます) // 画面内に入った動画を自動再生する+ほかの動画は停止する (すでに再生済みだったら再生しない) useEffect(() => { if (inView && !hasBeenPlayed && canAutoplay) { /* ... */ pauseOtherVideo(); play(); } /* ... */ }); このコンポーネントにはコレを含めて4つのコメント付きのuseEffectがあった。たびたび読み返す機会があったが、その度にこれらのコメントが大いに役立った。 なぜコメントが必要なのか? useEffectの中身はたいてい複雑な処理になる。しかもたいてい無名関数を渡すので、実現したい仕様に関する情報がな

                                  useEffectにはコメントをつけよう - Panda Noir
                                • 【React】useEffect の標準動作は「依存配列の中身が変わると実行」ではない - Qiita

                                  useEffect とは何か、ご存知ですか? useEffect? 知ってるよ。 依存配列に入れた値が変更されるたびに関数が実行されるフックでしょ? これは半分正解ですが、半分間違っています。 useEffect のデフォルトの挙動は「レンダーのたびに毎回実行」です。 依存配列は「変わった時に実行する」というより「変わらなければスキップ」と捉えたほうが良いかもしれません。 useEffect は再レンダー以外の変化を検知できません。 特にミュータブルなオブジェクトが絡む場合は注意 React 公式のドキュメントの解説を見ながら、以上の2つのポイントに絞って、誤解を解いていこうと思います。 宣伝 useMemo, useState についても記事を書きました。よかったらこちらも確認してください。 2023/10/03 追記: ブラッシュアップしました ブラッシュアップしたので、そちらの記事も

                                    【React】useEffect の標準動作は「依存配列の中身が変わると実行」ではない - Qiita
                                  • React.useEffectの分かりにくさをなんとかしたい

                                    useEffect(() => ..., [])って書いてあっても、ぱっと見どんな役割なのか分かりづらいですよね。コードの可読性が上がるようにちょっとした工夫を考えてみました。 (2021.11.27) react-useを追記しました。 useEffectが分からない U-motion開発部ではフロントエンド開発に使用するライブラリをAngularJS → Reactに移行しました。大きな規模のコードを複数人で開発することになるため、勉強会を開いて書き方のキャッチアップやよりよい手法の共有を行っています。そのなかで説明に結構困るのがReact.useEffectです。 副作用 (effect) フック により、関数コンポーネント内で副作用を実行することができるようになります もうこの時点で何を言っているのか分からない感じもするわけですが、ReactのuseEffectにはいくつか困った点

                                      React.useEffectの分かりにくさをなんとかしたい
                                    • 【React】useEffect解体新書 - Qiita

                                      はじめに 最近、周囲から「useEffectでバグった」という声を聞くことが増えました。そこで、今までなんとなくで使っていた useEffect とは何かを正しく理解したいと思い記事を書くに至りました。 この記事はReactの再レンダリングの仕組み(propsやstateが変更される度に再レンダリングされる)を理解している方向けです。 環境 TypeScript: 4.9.3 React: 18.2.0 そもそもuseEffectって? 公式ドキュメントには以下のように記載されていました https://beta.reactjs.org/learn/synchronizing-with-effects 一部のコンポーネントは、外部システムと同期する必要があります。たとえば、React の状態に基づいて非 React コンポーネントを制御したり、サーバー接続をセットアップしたり、コンポーネン

                                        【React】useEffect解体新書 - Qiita
                                      • そのuseRef+useEffect、refコールバックのほうが良いかも? - Qiita

                                        Reactにおいて、useEffectのユースケースとして知られているのが、DOMノードに直接アクセスしなければいけない場合です。useRefでDOMノードをrefオブジェクトに取得し、エフェクト内からDOMノードにアクセスするというのがその場合の基本的なやり方です。 このようなuseRef + useEffect の使い方は、問題ない場合もありますが、実は別の手段を使った方がいい場合もあります。その場合に別の手段として適しているのがrefコールバックという機能です。 そこで、この記事ではどのような場合にuseRef + useEffectよりもrefコールバックが適しているのか、そしてrefコールバックを使う場合の注意点について解説します。 復習: refコールバックとは React DOMでは、組み込み要素(divなどHTMLの要素)に対してrefという特殊なpropを与えることができ

                                          そのuseRef+useEffect、refコールバックのほうが良いかも? - Qiita
                                        • useEffectの中でsetStateを使うときはアンチパターンを疑おう

                                          結論 useEffectの中でsetStateを使いたくなったときは、まずは他の方法がないかを確認しよう! 概要 React で開発を行う際、(useState の)setStateと、useEffectはほぼ必ず使います。 しかし、これらを適切に組み合わせないと、コードの複雑さが増し、予期しないバグが発生する可能性があります。 特に、useEffectの中でsetStateを使用することはアンチパターンに繋がる目印になりやすいです。今回の記事では、コード例を紹介しながら図や動画を交えて解説していきます。 useEffectの中でsetStateを使うアンチパターン 1.無限ループの発生 useEffectの依存配列にsetStateで管理する状態を指定すると、その状態が更新されるたびにuseEffectが再度実行され、再度setStateが更新されるという無限ループに陥る可能性があります

                                            useEffectの中でsetStateを使うときはアンチパターンを疑おう
                                          • useEffectEvent フックを使って useEffect ともっと上手く付き合おう

                                            useEffectEvent という react フックをご存知ですか? まだ experimental なので、知らない方も多いと思います。しかし、このフックは 「なんで今までなかったんだろう?」と思ってしまうほど革新的 です。今回はその使い方の紹介などをします。 概要: useEffectEvent は useEffect とともに使うフック まず概要ですが、useEffectEvent は イベントリスナーを設定する useEffect とセットで使うフック です。 useEffectEvent を使うと、エフェクトとイベントリスナーを分離できます。そして、イベントリスナーの deps の変化時にエフェクトを再実行せずに済みます。 …とまあ、抽象的な説明だけでは分かりづらい と思うので、以降では useEffectEvent がどういう課題を解決するのか、また具体的にどういうケースで

                                              useEffectEvent フックを使って useEffect ともっと上手く付き合おう
                                            • useEffectのdeps比較関数をカスタムしたくなったときにやること - uhyo/blog

                                              Reactにおいて、useEffectなどいくつかのフックは第2引数として依存リストを取ります。 例えばuseEffectの場合、レンダリングの度に依存リストのいずれかの値が前回から変化したかどうかがチェックされ、変化していた場合はレンダリング後にコールバック関数が呼び出されます。 具体例としては、次のコンポーネントはcounterが変化するたびにconsole.logでそれを表示するでしょう。 const Conter = () => { const [counter, setCounter] = useState(0); useEffect(()=> { console.log(counter); }, [counter]); // ... }この場合、このuseEffectの依存リストはcounter一つということになります。 最初counterが0だった場合、次の再レンダリング時に

                                                useEffectのdeps比較関数をカスタムしたくなったときにやること - uhyo/blog
                                              • 【useEffect】初回にも実行されて困るなら《何をキッカケに、どう更新されるか》を見直せ - Qiita

                                                Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                                  【useEffect】初回にも実行されて困るなら《何をキッカケに、どう更新されるか》を見直せ - Qiita
                                                • Avoiding race conditions and memory leaks in React useEffect

                                                  Let us take a look at an implementation of getting data from an API request and see if there is any possibility of race conditions happening in this component: import React, { useEffect} from 'react'; export default function UseEffectWithRaceCondition() { const [todo, setTodo] = useState(null); useEffect(() => { const fetchData = async () => { const response = await fetch('https://jsonplaceholder.

                                                    Avoiding race conditions and memory leaks in React useEffect
                                                  • useEffectはなぜ使う必要があるのか? document.title = 'title' をラップする理由

                                                    答え(結論): レンダリングとエフェクトを分離するため クリーンアップを設定するため useEffect でラップする意味ってなくない? 以下の2つのコードはどちらもレンダリングすると Hello world と表示され、ページタイトルが Hello world になります。 const App1 = () => { useEffect(() => { document.title = 'Hello world'; }); return <h1>Hello world</h1> }; 同じ動作をするのであれば、なぜ useEffect でラップする必要があるのでしょうか? 理由1: レンダリング時に react の内部動作を考慮しなくて済む useEffect を使っていない App2 は、react が DOM 更新している最中に document.title = 'Hello worl

                                                      useEffectはなぜ使う必要があるのか? document.title = 'title' をラップする理由
                                                    • React hooksを基礎から理解する (useEffect編) - Qiita

                                                      React hooksとは React 16.8 で追加された新機能です。 クラスを書かなくても、stateなどのReactの機能を、関数コンポーネントでシンプルに扱えるようになりました。 React hooksを基礎から理解する (useState編) React hooksを基礎から理解する (useEffect編)  今ここ React hooksを基礎から理解する (useContext編) React hooksを基礎から理解する (useReducer編) React hooksを基礎から理解する (useCallback編) React hooksを基礎から理解する (useMemo編) React hooksを基礎から理解する (useRef編) useEffectとは useEffectを使うと、useEffectに渡された関数はレンダーの結果が画面に反映された後に動作し

                                                        React hooksを基礎から理解する (useEffect編) - Qiita
                                                      • Avoiding useEffect with callback refs

                                                        Last Update: 2024-12-08 Note: This article assumes a basic understanding of what refs are in React. Even though refs are mutable containers where we can theoretically store arbitrary values, they are most often used to get access to a DOM node:

                                                          Avoiding useEffect with callback refs
                                                        • そのuseRef+useEffect、refコールバックのほうが良いかも? - Qiita

                                                          Reactにおいて、useEffectのユースケースとして知られているのが、DOMノードに直接アクセスしなければいけない場合です。useRefでDOMノードをrefオブジェクトに取得し、エフェクト内からDOMノードにアクセスするというのがその場合の基本的なやり方です。 このようなuseRef + useEffect の使い方は、問題ない場合もありますが、実は別の手段を使った方がいい場合もあります。その場合に別の手段として適しているのがrefコールバックという機能です。 そこで、この記事ではどのような場合にuseRef + useEffectよりもrefコールバックが適しているのか、そしてrefコールバックを使う場合の注意点について解説します。 復習: refコールバックとは React DOMでは、組み込み要素(divなどHTMLの要素)に対してrefという特殊なpropを与えることができ

                                                            そのuseRef+useEffect、refコールバックのほうが良いかも? - Qiita
                                                          • useEffectからfetchするときのベストプラクティス - Qiita

                                                            useEffectの中でfetch (取得系のリクエスト)しないでください。以上です。ご清聴ありがとうございました。いいねと高評価、チャンネル登録よろしくお願いします。 おまけ とはいえ、useEffectの中でデータ取得することを考えなければいけない場合もあります。例えば、React 16をまだ使っている場合とか。React 18以降ならSuspenseがあるので考えなくていいです。 ということで、筆者は最近React 16の世界でどうしてもuseEffectの中でfetchしなければならない場合を最近経験しました。その場合にもできる限りベストプラクティスに従いたいということで、考えたことを紹介します。 まだReact 16系に囚われている方は参考にしてください。また、新しいReactを使っている方はこの記事で紹介することをそのまま実践する必要はありませんが、useEffectのベストプ

                                                              useEffectからfetchするときのベストプラクティス - Qiita
                                                            • How to Solve the Infinite Loop of React.useEffect()

                                                              useEffect() hook manages the side-effects like fetching over the network, manipulating DOM directly, and starting/ending timers. Although the useEffect() is one of the most used hooks along with useState(), it requires time to familiarize and use correctly. A pitfall you might experience when working with useEffect() is the infinite loop of component renderings. In this post, I'll describe the com

                                                                How to Solve the Infinite Loop of React.useEffect()
                                                              • React Hooks の useEffect の正しい使い方 - Qiita

                                                                Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                                                  React Hooks の useEffect の正しい使い方 - Qiita
                                                                • React useEffect メモリーリーク防止 Tip

                                                                  React Hooks登場で、クラス型コンポーネントでLifeCycle関数で処理していた部分を関数型コンポーネントでもuseEffectを使って処理できるようになりました。 useEffectを使う時、何気に使うとメモリーリークが発生する場合があります。今回はこの問題を防ぐためのTipを紹介したいと思います。 問題状況 普通、useEffectは以下のように使います。 import { useState, useEffect } from 'react' export default function App() { const [post, setPost] = useState(null) useEffect(() => { const fetchPost = async () => { const res = await fetch("https://jsonplaceholder

                                                                    React useEffect メモリーリーク防止 Tip
                                                                  • 初心者でも簡単にわかるReact useEffect, useLayoutEffectの使い方 | アールエフェクト

                                                                    React useEffectとは useEffectは関数(Functional)コンポーネントのみで利用することができるHookです。useEffectのEffectは”Side Effect”(副作用)を意味しています。Side Effectにはfetch関数を利用して外部のリソースからデータを取得したり、DOMの更新、ロギング(console.logも含む)などの処理が含まれます。 useEffectを理解する上でclassコンポーネントに関する機能との比較は重要ではないかもしれませんが、useEffectはReact ClassコンポーネントのライフサイクルcomponentDidMount, componentDidUpdateとcomponentWillUnmountの3つと同様な処理を行うことができるHookです。 componetDidMountはコンポーネントのマウント

                                                                      初心者でも簡単にわかるReact useEffect, useLayoutEffectの使い方 | アールエフェクト
                                                                    • Reactのさまざまなデータフェッチ方法を比較して理解して正しく使用する - useEffect編

                                                                      昨今のReact・Next.js界隈では様々なデータフェッチの仕組みが提供されていますが、一体どのような場面でどのデータフェッチ方法を使用したらベストなのでしょうか? 開発のためにたくさんの選択肢が出てきた今、きちんとそれぞれの特長を知って正しく適当に使ってあげたいものですね🌟 そこで、 ☝🏻CSRで基本的な「クライアントサイドデータフェッチ」として useEffect hooksを用いたデータフェッチ ✌🏻「クライアントサイドデータフェッチ」に加えて「クライアントサイドキャッシュの仕組みを利用して状態管理ができる」ことで有名なデータフェッチライブラリのSWR, TanStack Query 🤟🏻「サーバサイドデータフェッチ」として(1)Next.jsでのgetServerSidePropsを利用したデータフェッチ・(2)App Router組み込みのキャッシュ機構とRSCを用い

                                                                        Reactのさまざまなデータフェッチ方法を比較して理解して正しく使用する - useEffect編
                                                                      • React18でのStrictモードとuseEffectの挙動 - すな.dev

                                                                        ReactのStrictモードがv18になって挙動が追加された。 追加された挙動となぜそれが追加されたのかということについて調べた。 せっかくなのでここでまとめておく。 わりと調べて書いたつもりですが、もし内容が間違ってたら教えてください。 Strictモードとは ここでは簡単にStrictモードについておさらいしておく。 以下がドキュメント。 (基本的にここで書いてある内容はドキュメントとReact18のDiscussionsに記載してある。どちらも最後に参照先のURLを記載しておく。) Strictモードとは、アプリケーションに存在している様々な潜在的な問題点をwarningとして出してくれるもの。 重要なことはStrictモードによって影響があるのは開発モードのみであって、本番環境ビルドでは何も影響がないということ。 したがって、Strictモードによるwarningがあったとしても

                                                                          React18でのStrictモードとuseEffectの挙動 - すな.dev
                                                                        • useEffectの挙動をクイズ形式で振り返る

                                                                          はじめに 普段はスタートアップでBtoB SaaSを作っているtaroと申します! 今回はuseEffectの挙動をしっかりと理解するために、クイズ形式で振り返っていこうと思います。 普段、何気なーく使っていますが、便利なものって便利がゆえに詳しく調べる機会ってあんまりないですよね。 僕自身、最初は動くことを優先した開発の中でReactを学んできたため、こういった基礎中の基礎の学習が結構おろそかになっています。 なので今回は、useEffectの挙動をクイズ形式で1つ1つ振り返っていこうと思います。 ぜひ1問1問考えながら、楽しく読んでいただければ幸いです! 言葉の定義 クイズ中に使用する言葉の定義です! render ここでは関数Componentのreturnを実行して、DOMをブラウザに描画することを指します。 副作用編 最初は副作用が実行されるタイミングのクイズです。 Q1: 第2

                                                                            useEffectの挙動をクイズ形式で振り返る
                                                                          • useEffectのコールバック関数とcleanUp関数の実行タイミング、正しく説明できますか?

                                                                            TL;DR 「正しく説明できないな」となった人は useEffect を使ったり useEffect の関連記事を読む前に、ここで一緒に理解していきましょう。 この記事を最後まで読めば useEffect の基本についてはバッチリになると思います。 useEffect の基本 以下のような形が基本形となります。 第一引数には useEffect のコールバック関数、第二引数には依存配列と呼ばれるものを渡します。 依存配列に値を渡した場合、その値が更新された際にコールバック関数が実行されます。

                                                                              useEffectのコールバック関数とcleanUp関数の実行タイミング、正しく説明できますか?
                                                                            • useEffectがマウント時に2回実行される - Qiita

                                                                              Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                                                                useEffectがマウント時に2回実行される - Qiita
                                                                              • ReactとTypeScriptでuseEffectフックの正しい使用方法 - deve.K's Programming Primer - プログラミング初心者のための入門ブログ

                                                                                useEffectとは 暗黙のリターン useEffectでのasync/await 最後に React.jsでは副作用を処理するためのフックが2つございます。 ・ useEffect ・ useLayoutEffect これらの主な違いは、詳しくは解説致しませんが、全ては実行時のタイミングです。 簡単に言ってしまえば、非同期なのか同期処理なのかです。 以下で、解説しておりますので参照下さい。 dev-k.hatenablog.com useEffectとは useEffectフックは2つの引数を受け入れます。 useEffect(() => { // Mounting return () => { // Cleanup function unmount } }, [//Updating]) // 第2引数 デフォルトでは、すべての再レンダリングで実行しますが、オプションとして2番目の引数

                                                                                  ReactとTypeScriptでuseEffectフックの正しい使用方法 - deve.K's Programming Primer - プログラミング初心者のための入門ブログ
                                                                                • useEffectに非同期関数を設定する方法

                                                                                  useEffectで非同期関数を設定する際に落とし穴にハマったのでメモっておきます。 非同期関数をuseEffectに設定するとエラーになる useEffectフックで非同期関数を実行したい場合、以下のように設定するとエラーになります。 useEffect(async () => { const response = await fetch("https://www.googleapis.com/books/v1/volumes?q=AWS"); const data = await response.json(); console.log(data); },[]); なぜ非同期関数をセットするとエラーになるのか? なぜ、エラーになるのかというとuseEffectの第1引数の関数の戻り値にはクリーンアップ関数を設定する必要があるためです。 asyncを使って非同期関数にするとPromise

                                                                                    useEffectに非同期関数を設定する方法

                                                                                  新着記事