タグ

Reactに関するd4-1977のブックマーク (175)

  • コンポーネントベースで開発する時の CSS の書き方とコンポーネントの分類 (自己流)

    ReactSvelte でコンポーネントベースで開発するとき特有の CSS ノウハウってあんまり効かない気がする Twitter に書いたら反響があったので、自己流だけどまとめておく React Component の管理単位と、CSS としてのレイアウトの管理ポリシーは違うよね、みたいな話をマークアップエンジニアに時折されるが、そんな話は無視して完全一致させる。そういう星のもとで開発している コンポーネントの分類 ロジックコンポーネント レイアウトコンポーネント ブロックコンポーネント インラインコンポーネント 定義 ロジックコンポーネント Provider や hooks などのデータ処理だけを扱い、子に渡すコンポーネント 一切の CSS や DOM 実体を持たない レイアウトコンポーネント レイアウトコンポーネントは複数の子ブロックコンポーネント(または slot)を持ち、子ブ

    コンポーネントベースで開発する時の CSS の書き方とコンポーネントの分類 (自己流)
    d4-1977
    d4-1977 2023/06/04
    FLOCSSに似ている気がします。FigmaてAutoLayout使うときもこんな感じ。だから、相性はいいと思うんだけれど、関係者全員が理解しておかないと上手くいかない気はしています
  • Reactベストプラクティスの宝庫!「bulletproof-react」が勉強になりすぎる件

    Reactアプリケーションのアーキテクチャの一例として公開されているGitHubリポジトリ「bulletproof-react」が大変勉強になるので、私自身の見解を交えつつシェアします。 ※2022年11月追記 記事リリースから1年ほど経過して、新しく出てきた情報や考え方を盛り込んだ続編記事を書いていただいているので、こちらも併せて読んでいただければと想います(@t_keshiさんありがとうございます!)。 ディレクトリ構造が勉強になる まずはプロジェクトごとにバラつきがちなディレクトリ構造について。 ソースコードはsrc以下に入れる bulletproof-reactでは、Reactに関するソースコードはsrcディレクトリ以下に格納されています。逆に言えば、ルートディレクトリにcomponentsやutilsといったディレクトリはありません。 たとえばCreate Next Appで作成

    Reactベストプラクティスの宝庫!「bulletproof-react」が勉強になりすぎる件
  • 2021年からReactを始めるなら React Server Components 一択ではないか?(コラム追加版)

    2021年からReactを始めるなら React Server Components 一択ではないか?(コラム追加版)

    2021年からReactを始めるなら React Server Components 一択ではないか?(コラム追加版)
    d4-1977
    d4-1977 2021/10/16
    大ボリュームで読みきれてないです
  • クリーンなReactプロジェクトの21のベストプラクティス - Qiita

    コード品質向上のための実践的アドバイス Photo by Diana Polekhina on Unsplash. はじめに Reactは、構成の方法について特に決まりがありません。まさにこれが理由で、プロジェクトをクリーンで保守可能な状態に保つことは、私たちの責任なのです。 今日は、Reactアプリケーションの状態を改善するために従うべきベストプラクティスについて説明します。これらのルールは広く受け入れられているため、この知識を持つことは必須です。 すべてコードで示します。さあ始めましょう! 1. JSXの省略形を使用する ブール変数の受け渡しには、JSXの省略形を使うようにしましょう。例えば、Navbarコンポーネントのタイトルの可視性を制御するとします。 悪い例

    クリーンなReactプロジェクトの21のベストプラクティス - Qiita
    d4-1977
    d4-1977 2021/09/25
    暗黙の戻り値の事について、そういえばそうだったと思いました
  • 150万MAUのNuxt.js製サービスを機能開発を止めずに1ヶ月&1人でNext.jsに置き換えた話

    Nuxt.js で開発されていたAI受診相談ユビーのフロントエンドNext.js で作り直しました。 まだまだ仮説検証を繰り返すフェーズのスタートアップのため、機能開発を止めて一気に置き換えることはできず、機能ごとに少しずつ置き換えてリリースをしました。結果、5人のプロダクト開発チームによる機能開発と並走して、全体の移行を1人で1ヶ月の短期間で終わらせることができたので、その意思決定や過程、工夫を紹介します。 移行前の課題 まず前提として、移行前の Nuxt.js による実装は 2018 年に立ち上がったもので、当時 toC の Web サービスを持っていなかった Ubie が ほぼ 1 人の小さいチームで PoC 的に作り始めたものでした。また、当時の Next.js は今ほど多機能ではないプレーンなフレームワークでした。 これらを踏まえて、当時の状況で MVP を最速で作るための技

    150万MAUのNuxt.js製サービスを機能開発を止めずに1ヶ月&1人でNext.jsに置き換えた話
    d4-1977
    d4-1977 2021/08/07
    きちんと計画たててやっている印象。 理想と問題と変更によるデメリットの受け入れなど、移行の派手さあるけれど、地道にやる事の大切さを感じます
  • ログラスのReactの技術選定について🐳

    はじめに こんにちはログラスのフロントエンドエンジニアの @Yuiiitoto です。 「次世代型経営管理クラウド」のSaaSを開発しています。 今回Reactを使って開発しているログラスのフロントエンドがどういう技術を使っているのか、なぜそれを選んだかについて解説していきます。 Reactはライブラリの数が豊富な反面で群雄割拠している領域が多く、技術選定がとても大変です。 同じ悩みを抱えるフロントエンドエンジニアの方に少しでも力になれればと思って記事にしました。 ログラスのフロントエンド 似たようなサービスの場合に特に参考にできる場合が多いと思うので、記事の前提としているサービスについて少し説明します。 ログラスはいわゆるtoBのSaaSの業務システムみたいな立ち位置です。 ほぼ全てのページに認証が入り、画面の中の要素はtoCのサイトより多めです。 Next.jsで構成されていて、SSG

    ログラスのReactの技術選定について🐳
    d4-1977
    d4-1977 2021/07/19
    選択、三大悩むところでした
  • 【React】たった10分でお洒落なアニメーションを実装する

    今回は React でお洒落なアニメーションを手軽に実装する方法をまとめました。 実装にあたり、Airbnb が提供している Lottie というものを使用します。 JavaScript スタイルガイドを公開している Airbnb はフロントエンドエンジニア界隈ではかなり有名ですよね。次のセクションでは Lottie に関してもう少し深堀りしていきます。 Lottie とは Web、iOS、Android に対応したライブラリです。Web アプリ だけでなく、ネイティブアプリでも使用できるのはとても魅力的ですね!React Native でも使用できるのは個人的に嬉しい所です。 Adobe After Effects で作成したアニメーションを Bodymovin というプラグインで JSON データとして書き出し、その JSON ファイルを Lottie が解析して、モバイルや Web

    【React】たった10分でお洒落なアニメーションを実装する
    d4-1977
    d4-1977 2021/07/14
    配布しているサイトがあるの知らなかった!
  • React + microCMSで実現するZOZOTOWNキャンペーンページのノーコード化 - ZOZO TECH BLOG

    はじめに 2020年新卒入社で、現在ZOZOWEB部所属の武井です。ZOZOTOWNのWebフロントエンド開発を担当しています。私は入社以来オフィスに2度しか出社したことがありませんが、そのうちの1度はスタッフインタビュー記事の撮影のときでした。アートがたくさんある素敵なオフィスですが、それ以降出社できていません。まさか新卒1年目からフルリモート勤務をすると思っていませんでしたが、先輩スタッフが仕組み作りをしてくださっていたおかげで快適に働けています。 さて、題です。ZOZOTOWNではタイムセール、ショップ限定クーポン、抽選プレゼントなどのキャンペーンを期間限定で実施しています。このキャンペーンをより際立たせるためにキャンペーンページを作成し、ホーム画面やメルマガなどを通じてお客様にお届けしています。しかし、このキャンペーンページの作成が必要になった場合、エンジニアが都度実装しており、

    React + microCMSで実現するZOZOTOWNキャンペーンページのノーコード化 - ZOZO TECH BLOG
    d4-1977
    d4-1977 2021/07/14
    この方法はあるなあ
  • 若手エンジニアの俺がフロントエンドのビルドを早くしてReactも導入しちゃった話 - SMARTCAMP Engineer Blog

    またオレ何かやっちゃいました? こんにちは!!!スマートキャンプでエンジニアをしている吉永です! 自己紹介記事はこちら 前回の記事はこちら 弊社の主力サービスであるBOXILはリリースから時間が経っていることもあり、バックエンド・フロントエンドともに様々な技術的負債となる部分を抱えています。 また、その負債の中には普段の業務時間では手をつけにくいものもあるため、定期的に薪入れと呼ばれる開発改善日を設けています。 先月行われた薪入れはいつもよりも長い1週間の期間が設定されており、今回の記事ではその中で私が行ったフロントエンド改善の内容や、そこに至った経緯について説明します。 やったこと ビルドフロントの短縮 Reactの試験導入 BOXILのフロントエンドについて 現在のフロントエンドを改善するに至った経緯とその背景 フロントエンド負債の認識のすり合わせ 負債を話し合う会の開催 理想を話し合

    若手エンジニアの俺がフロントエンドのビルドを早くしてReactも導入しちゃった話 - SMARTCAMP Engineer Blog
    d4-1977
    d4-1977 2021/07/14
    「React化が途中で頓挫した場合」身に覚えがあります…
  • すごいReactフック8選 - Qiita

    はじめに React.jsは現在、フロントエンド開発者に最も人気のあるJavaScriptライブラリです。Facebookが開発し、オープンソースのプロジェクトとして提供されているReactは、世界中の開発者や企業が使用しています。 Reactは、シングルページアプリケーションの構築方法を大きく変えました。その最大の特徴の1つがフックです。フックは2019年に導入されたもので、状態処理の時に、クラスコンポーネントの代わりに関数コンポーネントを使用できるようになりました。組み込みのフックに加えて、Reactは独自のカスタムフックを実装する方法を提供しています。 ここでは、アプリケーションやプロジェクトで使用できる、カスタムフックとその実装に関するお気に入りをいくつか紹介します。 1. useTimeout 宣言型アプローチでsetTimeoutを実装できます。まず、コールバックと遅延を受け取

    すごいReactフック8選 - Qiita
  • React vs Hotwire ~ 私とHotwireとその後

    半年くらい前にこんな記事を書きました。 様々なプロダクトにメインとして使用しているNext.js製のフロントエンドをStimulusとTurboに書き換えて運用してみました。 今回は実際に運用してみた所管などをまとめたいと思います。 はじめに とはいえ、Hotwireたちは飽くまでフロントエンドのみ。バックエンド側のロジックを持つことのできないこれらのライブラリとの単純な比較対象としては、サーバーレスでも運用できるNext.jsとは若干ズレが出てきます。 今回私はNode.js製のバックエンドサーバーの上にNext.jsが乗っかていたもののフロントエンドの部分を、従来型のpugのマークアップとHotwireに置換し運用しました。 ですので、今回はNext.jsではなくReactとの比較を行っていきます。 ここは一つご留意ください。 ちなみにVercelなどのPaasなどでHotwireを使

    React vs Hotwire ~ 私とHotwireとその後
    d4-1977
    d4-1977 2021/07/11
    珍しい比較記事。判断はチームによりそう。なんとなく、Reactの場合、マークアップも出来てJavaScriptも書ける人がいるチーム向け。片方だけの人に合わせるとReact使ってもカオスな事が生まれそう
  • UIが嘘をつく? UXデザインにおける「楽観的な更新」とSPAでの作り方 - カミナシ エンジニアブログ

    こんにちは、デザインエンジニアのショウです。 突然ですが、UI/UX デザインにおいて、「楽観的な更新」という言葉を聞いたことがありますか?あまり聞いたことがなくても、実は日常にたくさん存在しています。 例えば、 twitter や facebook のいいねボタン。いいねをタップした直後に色がつくのですが、実はサーバーへのリクエスト送信と UI 上のいいねの色付きが同時に発生しています。つまりサーバーからの通信結果待たずに UI を更新しています。 他に、trello でタスクカードを隣の列に移動したり、iMessage や Facebook メッセンジャーでのメッセージの送信、Kindle アプリで途中までしかダウンロード出来てないが読めることなども楽観的な更新です。 図:楽観的な更新を採用しない時と採用した時のメッセージ送信のUI (引用元) 楽観的な更新の意義 早くも 1968

    UIが嘘をつく? UXデザインにおける「楽観的な更新」とSPAでの作り方 - カミナシ エンジニアブログ
    d4-1977
    d4-1977 2021/06/13
    コレもoptimistic update UIの話。
  • React Query で optimistic-update な UI を実装してみる - Studyplus Engineering Blog

    こんにちは @okupara です。 去年から Studyplus for School の API 周りの state 管理を Redux から React Query にし始めました。キャッシュや無限スクロールでのリクエストのサポート、ページネーションのサポートなど、隈雑になりがちな処理を抽象化してくれてるので、かなり使いやすいです。 最近個人的に React Query を使った optimistic-update な UI の実装方法をどうすれば良いのか試行錯誤していたので、現時点での実装案を共有できればと思います。 optimistic-update (optimistic-ui) "楽観的な更新・UI"とはなんぞやについてはカミナシさんの開発者ブログでわかりやすく解説されてます。 Reduxによるいいねボタンの実装例もありますので是非ともそちらををご参考ください。 今回自分が試

    React Query で optimistic-update な UI を実装してみる - Studyplus Engineering Blog
    d4-1977
    d4-1977 2021/06/13
    optimistic update UI って言うのを知りました。はて、どっちがいいんだろ?と判断しかねていたところなので、ナルホドなあって、感心してました
  • React でクラスコンポーネントより関数コンポーネントを使うべき理由 5 選

    React 一覧JSXJSXの記法条件分岐・ループ処理Design patternCompound ComponentOthersコンポーネントのレンダリング位置をずらすReact HooksReact Hooksとは?useEffectuseEffectのよく間違うポイントuseStateuseStateの注意点useMemouseCallbackuseReducerComponent関数コンポーネントを使うべき理由ReduxRedux の概念RefRefref forwardingServer ComponentReact Server Component Component の種類 React でコンポーネントを定義する際は大きく分けてクラスコンポーネント、関数コンポーネントの 2 つに分けることができます。 これらのコンポーネントについては、コンポーネントと props につい

  • Improve the Performance of your React Forms

    Forms are a huge part of the web. Literally every interaction the user takes to make changes to backend data should use a form. Some forms are pretty simple, but in a real world scenario they get complicated quickly. You need to submit the form data the user entered, respond to server errors, validate the user input as they're typing (but not before they've blurred the input please), and sometimes

    Improve the Performance of your React Forms
  • 色々書き比べた結果Tailwind CSSにしたという話 - Qiita

    Twitterでこういう発言を見かけまして Tailwind CSSはデザインに凝ってるサイトでは使えない こだわりが無い場合に向いている は?何いってんの? って思ったので、自分がいろいろ試した結果、Tailwind CSSを選んだ話を書きます。 はじめに 以前、Tailwind CSSは結構いいぞって話を書いたんですが、この記事の立ち位置的にはその続きみたいなものなので、以下の記事を始めにご参照いただけるとより分かりやすいかもしれないです。 この記事では、前回記事を書いた後、個人仕事でWebサイトをGatsbyで作り、その中で、どうやってCSSを書くのが良いのか模索した結果、自分はこれを選んだっていうのを、同じUIを色々な方法で書き比べたコードを並べつつ、どうのこうの筆者の考えを述べていきます。 その仕事はほとんど筆者が「まかせてくださいよーいい感じに作りますよー。デザインそろってない

    色々書き比べた結果Tailwind CSSにしたという話 - Qiita
    d4-1977
    d4-1977 2021/06/13
    Code Gridの人の話だった。Tailwind CSSはともかく?Reactを使うか使わないかでCSSの設計が大きく変わるのは、デスヨネーって気持ちになりました。新卒研修するならReactあり無しで研修内容が異なるよね
  • React + TypeScriptでpropsと型を便利に扱うTips集

    import List from "./List"; type ListProps = React.ComponentProps<typeof List>; type TableProps = { color: string; } & ListProps; const Table: React.VFC<TableProps> = ({ color, data }) => { return ( <div> ... <List data={data} />; </div> ); };

    React + TypeScriptでpropsと型を便利に扱うTips集
    d4-1977
    d4-1977 2021/06/12
    便利。
  • Rails API + React でマッチングアプリを作ってみた - Qiita

    概要 タイトル通り。バックエンドにRailsAPI)、フロントエンドReactを採用したマッチングアプリ的なものを作ってみたのでアウトプットしておきます。 完成イメージ 割とそれっぽい雰囲気になってます。 使用技術 バックエンド Ruby3 Rails6(APIモード) MySQL8 Docker フロントエンド React TypeScript Material-UI 今回はバックエンドのみDockerで環境構築していきます。 実装の流れ だいぶ長旅になるので、これからどういった流れで作業を進めていくのかザックリ整理しておきます。 環境構築 Rails($ rails new) React($ create react-app) 認証機能を作成 gemdevise_token_auth」などを使用 マッチング機能を作成 中間テーブルなどを活用 バックエンドとフロントエンドを分離して

    Rails API + React でマッチングアプリを作ってみた - Qiita
  • 私が React を好きな理由

    何かを好きになるのに、理由なんているかい? ~セ・ヤ (B.C.2525)~ 出会い あれはおよそ4年前のことでした。 2016年の冬、寒さに震えていた私はフロント未経験の身でありながらフロントの技術選定をしなければならなかったのです。 その頃のフロント界は混迷を極め、 React もまだ枯れておらず、Angular は2系が1系と大きく違うことから叩かれ、Vue が名乗りを上げようとしていました。「フロント界隈は動きが速い」というフレーズも流行語大賞になりそうな勢いでした。 そんな中選択肢・考えることの多さに絶望していた私は React を試しに触ってみました。 そして「思ったより覚えることないし、独自文法とかも少ないからミスってもリカバリー効きそうだな」と直感的に思いました。 はっきり言ってしまえば雰囲気で選んだのですが、今ならこの時の直感は間違っていなかったと自信を持って言えます。

    私が React を好きな理由
    d4-1977
    d4-1977 2021/06/06
    気持ちがわかってきた。そして、状態とは…が大きな壁に感じられております。
  • Atomic Designをやめてディレクトリ構造を見直した話|食べログ フロントエンドエンジニアブログ

    こんにちは。フロントエンドチームの金野と申します。 べログでは現在、React+TypeScriptフロントエンドのリプレースを進めています。 以前の記事で、べログではAtomic Designをどのように取り入れているかの紹介をしました。 しかし、最近のリプレース作業では、Atomic Designとは異なるディレクトリ構造を採用しています。 今回の記事では、「なぜAtomic Designをやめたのか」という理由と、「どのようなディレクトリ構造にしたのか」を紹介します。 Atomic Designを導入したねらいと導入した結果 上記の記事で言及した通り、当初Atomic Designを導入したねらいは以下になります。 1. コンポーネントの責務がより明確になる 2. 見た目の粒度だけでなく、ロジックの責務も明確にできる 3. 「ドメインが入るか/入らないか」。「抽象的か/そうでな

    Atomic Designをやめてディレクトリ構造を見直した話|食べログ フロントエンドエンジニアブログ
    d4-1977
    d4-1977 2021/05/22
    食べログさん、フロントエンドを作り直し続けているイメージがあります。フロントが作り直し出来る構造なのイイ!けれど、ずっと工事中な気もしていて、いいけれどプロダクトにどんないい事あったのかも気になります