タグ

Reactに関するysirmanのブックマーク (111)

  • 【保存版】React Hooks 使用上の注意点が多すぎ問題 _(┐「ε:)_ - 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 使用上の注意点が多すぎ問題 _(┐「ε:)_ - Qiita
  • Rules of React を経典に React を書いて心の安寧を保つべし - Qiita

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

    Rules of React を経典に React を書いて心の安寧を保つべし - Qiita
  • 【React】なぜコンポーネントの中でコンポーネントを作るのは良くないのか?

    こんにちは、ダイニーの Feature team でソフトウェアエンジニアをしている @ta21cos です。 最近は新規事業である決済関連の機能の開発をメインに行なっています。 ダイニーにおける Feature team は機能にフォーカスした開発・運用を行っているチームです。最近は複数の事業毎に Unit として分かれて開発を進めています。 日は、普段の開発で実際にあった Pull Request のレビューコメントから得た学びについて紹介します。 Dialog を実装しよう React を使ってある Dialog を作成するため、以下のようなコードを書きました(コードは簡略化しています)。 // useSample ファイル // 内部でロジックと Dialog を同時に定義している hook const Dialog = memo<{ progress: number, ...

    【React】なぜコンポーネントの中でコンポーネントを作るのは良くないのか?
  • React 19の新機能まるわかり

    2024年4月にリリースされたReact 19 Betaの新機能について、細かい点やポイントを解説します。

    React 19の新機能まるわかり
  • 巷の「ReactとNext.jsの比較」はここがおかしい、というか比較すること自体が微妙 - honey32

    (WIP まとまったら Qiita とかに上げるかも) TLDR; 「ReactNext.js を比較」という記事で、 Next.js と比較できるのは「フレームワークなしで React を使うという選択肢」であって、「React そのもの」ではない。 ✅️ React を使うのに 「フレームワークあり」 vs 「フレームワークなし」 ❌️「React」 vs 「Next.js」 それはそうと、「create-react-app の機能・特徴」のことを、「React の機能・特徴」であるかのように書いてしまっている記事が多い create-react-app 自体が擬似的なフレームワーク(といえそう) そもそも、create-react-app は今は更新されてないので create-vite-app を使うべき フレームワークあり or フレームワークなし 【フレームワークあり】

    巷の「ReactとNext.jsの比較」はここがおかしい、というか比較すること自体が微妙 - honey32
  • React Forget は何を「忘れ」させてくれるのか

    はじめに こんにちは、株式会社TERASSでエンジニアをしている myrear です。 先日 React Blog にて公開された React Labs: 私達のこれまでの取り組み - 2024年2月版 という記事に React Compiler に関する記述があります。 この React Compiler とは React コードを自動的に最適化し、それにより開発者はメモ化について考える必要がなくなる(忘れることができる)というものです。 まるで魔法のようですが、一体どのような方法でコードの最適化を実現しているのでしょうか? 記事では2023年秋の講演の動画を自動翻訳字幕で追いながら要所要所をかいつまんで解説していきます。 React Forget とは? 先述の通り React コードを自動的に最適化してくれるコンパイラです。 具体的には JavaScriptReact のルー

    React Forget は何を「忘れ」させてくれるのか
  • Reactの気持ちになって理解するWebパフォーマンスチューニング

    WebアプリケーションのUIの表現はどんどんリッチになってきています。しかしその一方でブラウザ上での描画の負荷は増大し、時としてスムーズに動かず体験を損ねることもあります。ユーザーにとって使い心地の良いUI体験はフロントエンドのパフォーマンスチューニングに大きく委ねられていると言えるでしょう。 スタートアップ開発を支援する株式会社Gaji-Laboでは、サービスの価値に直結するエンドユーザーの体験向上のため、快適なUIを提供する事をとても大切にしています。 この記事では、快適に動くUIを作るため、フロントエンドフレームワークのマジョリティであるReactとどう付き合っていくべきかを考えていきましょう。 React仕事を理解するまず、Reactがどんな仕事をしているのかを理解するところからはじめましょう。Reactの主な仕事UIを描画すること、そして必要に応じてそれを再描画することです。

    Reactの気持ちになって理解するWebパフォーマンスチューニング
  • チームで同じような React コンポーネントを書く

    はじめに 「eslint-plugin-react の plugin:react/recommended に含まれていないルールにも有効なものがあるよ!みんなで同じようなコンポーネント書いて、レビューを楽にして保守性も上げよう!」という内容の記事です。 この記事では React の関数コンポーネント、TypeScript、Prettier を使っている前提で書いています。そのため、タグの位置調整など Prettier で対応可能なものは Prettier に任せる方針です。 先に結論の .eslintrc.cjs を載せておきます。React 以外の設定は省いています。 { extends: [ "plugin:react/recommended", "plugin:react/jsx-runtime", "plugin:react-hooks/recommended" ], rules:

    チームで同じような React コンポーネントを書く
  • Reactの状態を理解して適切にHooksを利用する

    Reactと状態は切っても切れない関係です。なぜなら、Reactは状態に基づいて画面を更新するコンポーネントベースのUIライブラリだからです🤝🏻 そんなReactの状態を管理・操作しやすくしてくれているのが、React 16.8から登場したフックです。それゆえ、フックを正しく利用するにあたってReactの状態の理解は非常に重要であり、Reactの状態の理解があやふやだと、予期せぬ挙動やバグのもとになりかねません。 今回の記事では、Reactの状態を理解しながら適切な箇所で適切なHooksを選択していくプロセスを再確認できた!自信を持ってReactをコントロールできるようになりそう!と言えることをゴールとしています🎉 今回使用した即席匿名メモアプリのコードベースです。 サークルでは、コミットに沿って説明をしていきました。(あくまで即席なので細かいこと気にしながら作ってませんorz) 【

    Reactの状態を理解して適切にHooksを利用する
  • Reactにおけるパフォーマンス最適化のTips

    はじめに React は内部でのパフォーマンス最適化により UI 更新に必要な DOM 操作の数を軽減しています。記事では、さらに React アプリケーションを最適化するテクニックを紹介します。 前提知識 以下にレンダリングの仕組み等を解説します。すでにご存知の方は飛ばしてテクニックの章をお読みください。 React がどのように UI を更新するのか レンダリングされたコンポーネントを作成した時、React はコンポーネントの要素木に対してvirtual DOMを作成します。コンポーネントの状態が変わるたびに React は virtual DOM 木を作成し以前のレンダリング結果と比較します。それらの違いのみを変更された要素の実際の DOM に反映します。 実際の DOM は操作するのにパフォーマンスコストがかかるため、React は virtual DOM を用いることで再レンダ

    Reactにおけるパフォーマンス最適化のTips
  • 目玉機能満載の Apollo Client 3.8 のリリース紹介

    先日 Apollo Client 3.8 がリリースされました。このバージョンは Apollo Client 史上最大のマイナーリリースで、待望の Suspense 対応や、他にも様々な機能が含まれています。今回は、リリースされた機能と、その使い方について紹介したいと思います! Suspense 対応 まずは一番の目玉である Suspense 対応です。Relay や urql が Suspense に対応している中、ついに Apollo Client も Suspense に対応しました! 今回のリリースでは Suspense に対応した 3 つ hooks が追加されたので順番に紹介していきます。 useSuspenseQuery useSuspenseQueryはuseQueryの Suspense 対応版のようなイメージで、リクエストが行われている最中は呼び出し元のコンポーネントを

    目玉機能満載の Apollo Client 3.8 のリリース紹介
  • フロントエンドのディレクトリ構成を整理してコードの凝集度を高める

    こんにちは、atama plus というスタートアップで web エンジニアをしている yubon です。 atama plus Advent Calendar 2023 の 7 日目になります。 記事では、atama plus で実際に開発・運用している React プロジェクトにおいて、機能的な凝集度を高めるために行ったディレクトリ構成の再設計について紹介します。 フロントエンドのディレクトリ構成に関する考え方や設計思想は多くの記事で紹介されていますが、「業務で開発しているプロジェクトのコードで、ペインがある状態から再設計して実際に移行した」というケーススタディ的な記事は少なそうだったので、書き残しておこうと思います。

    フロントエンドのディレクトリ構成を整理してコードの凝集度を高める
  • 4年分の負債を解消するために React ディレクトリ構成について真剣に考えてみた - Qiita

    この記事は株式会社ビットキー Advent Calendar 2023 5日目の記事です。 はじめに この記事では React を用いたフロントエンドアプリケーションのディレクトリ構成について検討した内容を紹介します。 現在フロントエンド開発を行っていて、ディレクトリ構成にお悩みの方の参考になれば幸いです。 ※ State 管理についての良し悪しやその他 React 向けのフレームワークライブラリについては記事では触れません。 今回対象とするプロダクト ビットキーのHome事業では、不動産管理会社向けのB2B2Cプロダクトを展開しています。 その中でも不動産管理会社の方が利用する管理画面について、リリース後から様々な機能や画面が実装されシステムが巨大化してきたので、ディレクトリ構成を見直す機会が訪れました。 参考値として、現在のプロダクトは100画面を超えており、ソースファイルも1500

    4年分の負債を解消するために React ディレクトリ構成について真剣に考えてみた - Qiita
  • javascriptでimport文周りを綺麗に保つTips

    はじめに javascriptのimport文まわり、何も対策しないとごちゃごちゃになりがちですよね... こちらの記事ではimport文周りを綺麗に保つのに役立つtipsをいくつか紹介します。 ソートをする import文をソートすることで、コードの見た目が整い、可読性が向上します。ソートをしたくない理由がある場合以外は基的にソートをしましょう。 before import axios from 'axios'; import MyComponent from 'components/MyComponent'; import React from 'react'; import { myFunction } from 'utils/functions'; // 外部のライブラリ import React from 'react'; import axios from 'axios';

    javascriptでimport文周りを綺麗に保つTips
  • フロントエンドのディレクトリ設計思想

    はじめに フロントエンドのディレクトリ構成、世の中に色んな「推し」が有って悩みますよね。 例えば、、、 さらに最近は、App Directoryの登場や、それに合わせたNext.js公式の「推し」構成がドキュメント化されたりと、さらに色々なパターンが出てきています。 記事の趣旨 記事では、具体的な構成そのものではなく、 様々ある構成を横串で見通して整理できる設計思想を紹介します。 新しい推し構成の紹介ではなく、構成を考えたり決めたりするときに役立つ抽象的・汎用的な指針を提供できればと考えています。 基となる考え 分割の方向 一般的に、アーキテクチャにおける分割には2つの方向が有ります。 (出典も良書なのでリンクを貼っておきます: https://www.amazon.co.jp/dp/4873119820) これはディレクトリにおいても同じだと思っていて、筆者は分かりやすさのために

    フロントエンドのディレクトリ設計思想
  • React の useEffect とクリーンアップ関数の実行タイミングがこれだけで分かる

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

    React の useEffect とクリーンアップ関数の実行タイミングがこれだけで分かる
  • 【React / useHooks】開発不要で使える便利なカスタムフックス20選

    フロントエンドで処理をカスタムフックス化する際、windowの高さを取得するなど、どのプロジェクトでもある程度決まったコードがありますよね。 useHooksはそういったカスタムフックスのライブラリとなっています。カスタムフックは自前で作ってしまうことが多いものの部分的に任せられるかなと思い、useHooksに登録されている便利そうなカスタムフックスをピックアップしてみました。 useHooksを使うにあたって カスタムフックスは自前で用意する方がカスタマイズ性高く安心して使える 調べれば同じ機能を持つカスタムフックのコードが出てくるので必ずしもuseHooksを使う必要はない プロトタイプ開発とかで速度が求められるなら導入するのはありかも 最初からこういうのに慣れすぎると開発理解があやふやになるのではといった議論はありそう こういうカスタムフック置くと便利だなという確認にも良さそう 結論

    【React / useHooks】開発不要で使える便利なカスタムフックス20選
  • 【むっず】Reactコードで理解する「凝集度」 - Qiita

    🤷‍♂️ 凝集度とは みなさん、おはようございます! さて、いきなりですが、みなさん プログラミングにおける、凝集度とはご存知でしょうか? 「知っとるわい!!」との声が聞こえてきそうですが、 かく言う私は、言葉は知っていても、細かい部分まで理解することができていませんでした と言うわけで、凝集度に関してReactのコードを混ぜながら解説しましたのでご覧ください〜! もし間違いあればコメントいただけると嬉しいです 結合度編もあるよ! 🤔 凝集度って? それは一つのモジュールやコンポーネント、関数、クラスなどが、どれだけ単一の責任や機能に集中しているかを測る指標 一つのモジュールの責任を減らすという考え方 🤔 凝集度が高い状態とは? そのモジュールや関数が一つの明確な目的に専念していて、それ以外のことを行わない状態のこと 🤔 凝集度が低いと何が悪いの? 一つのコンポーネントが多くの責任

    【むっず】Reactコードで理解する「凝集度」 - Qiita
  • React

    2023年度リクルート エンジニアコース新人研修の講義資料です

    React
  • Container/Presentationalパターン再入門

    特に重要なのがPresentational Componentは原則状態を持たず、データの受け取り元がPropsに限定されている点で、このルールが守られることでPresentational Componentの責務が小さくなり、この後紹介するメリットに繋がります。 メリット Container/Presentationalパターンのメリットとして大きく分けて下記の3つが挙げられます。 Componentの責務が明確になる ロジックはContainer Component、UIはPresentational Componentといった形で責務がはっきりしているので、どこで何を実装しているのかがわかりやすくなります。 そのためUIの微調整をしたいという場合にはPresentational Componentのみを改修すれば良いですし、UIはそのままでロジックだけ変更したいという場合にはCont

    Container/Presentationalパターン再入門