タグ

Reactに関するR2Mのブックマーク (179)

  • Things you forgot (or never knew) because of React

    Published: August 4, 2023 Updated: October 27, 2023 Part 1: an intro about music, defaults, and bubbles Like a lot of people, there was a time when the only music I listened to was whatever was played on my local radio station. (A lot of people over 30 or so, anyway. If this doesn’t sound familiar to you yet, just stick with me for a minute here.) At the time, I was happy with that. It seemed like

    Things you forgot (or never knew) because of React
    R2M
    R2M 2023/08/12
  • Million.jsの仕組みが気になったので調べてみました

    function Lion() { return ( <img src="https://million.dev/lion.svg" /> ); } const LionBlock = block(Lion); この記事の執筆時点(v2.4.2)では UI Component を提供するライブラリと一緒に使えなかったり、コンポーネントに props を渡す際にスプレッド構文が使えなかったりと、まだまだ制約が多そうです。 ブロック仮想DOMの仕組み ブロック仮想DOMの仕組みについてはブログで詳しく説明されていたので、詳細気になる方は読んでみてください。 (下記抜粋は ChatGPT で翻訳したものになります) ブロック仮想DOMは、差分検出に異なるアプローチを取り、次の2つのパートに分かれます: 静的解析: 仮想DOMは解析され、ツリーの動的な部分が「編集マップ」として抽出されます。編集マ

    Million.jsの仕組みが気になったので調べてみました
    R2M
    R2M 2023/06/10
  • Virtual DOM: Back in Block | Million.js

    A little over four years ago, Rich Harris released Virtual DOM is pure overhead (opens in a new tab), analyzing the performance of traditional virtual DOM manipulation.[0] [0] "you've probably heard the phrase 'the virtual DOM is fast', often said to mean that it's faster than the real DOM. It's a surprisingly resilient meme" - Harris, 2018 In his article "Virtual DOM is pure overhead," Rich Harri

  • Reddit - Dive into anything

    What's you opinion on the new Reddit design ditching React in favor of Lit for mostly performance reasons? Old : https://i.imgur.com/ZaGmgPr.png New (you need to be logged out): https://i.imgur.com/83jzoNx.png They've announced it here: https://www.reddit.com/r/reddit/comments/11zso11/an_improved_web_experience/ I've confirmed the JS framework they've used with an extension. The performance boost

  • React.js開発当初、「そんなものが使えるはずがない」とFacebook社内で評価されていた。React.jsの開発経緯を振り返る「React.js: The Documentary」YouTube公開

    React.js開発当初、「そんなものが使えるはずがない」とFacebook社内で評価されていた。React.jsの開発経緯を振り返る「React.js: The Documentary」YouTube公開 代表的なJavaScriptのフレームワークの1つであるReact.jsがどのように生まれ、発展してきたのかが、React開発当時の関係者やメンテナーなどへのインタビューによって語られる動画「React.js: The Documentary」がYouTubeで公開されています。 動画の作成と公開を行ったのは、ITエンジニア向けの転職紹介などキャリアサービスを提供しているHoneypot社。同社は以前にもKubernetes歴史を紹介したドキュメンタリー動画「Kubernetes: The Documentary」を公開しています。 参考:KubernetesGoogleが開発し、

    React.js開発当初、「そんなものが使えるはずがない」とFacebook社内で評価されていた。React.jsの開発経緯を振り返る「React.js: The Documentary」YouTube公開
    R2M
    R2M 2023/02/22
  • (基礎編)jQuery使いのエンジニアがReactとNext.jsでWebサイト制作するために最低限押さえておきたいコード

    なぜ書いたか 筆者もWebサイト制作をそこそこ長くやってきておりいまは業務でVueを書いたりちょっとReactを書いたりSvelteを書いたりしていますが、2年前くらいまではReactやES6の構文すら書いたことがありませんでした。 WordPressでのサイト制作が多く、機能が少ないサイト制作会社ではjQueryで充分なことも多く、恥ずかしながら業務時間外での学習や外部の情報を追うこともしていなかったため、開発系の技術スタックに慣れるのにかなり時間がかかりました。 まずはよく使うコードを見て解説しながら答えの一つを示し、よく出てくるコードをざっくり理解して書けるようにすることで、実務でReactを取り入れる取っ掛かりになればいいなぁという思いでこの記事を書いています。 続編は多分今月中に書きます。 こちらは基礎編です。 対象者 普段jQueryでWebサイトを制作している 生のJSはあん

    (基礎編)jQuery使いのエンジニアがReactとNext.jsでWebサイト制作するために最低限押さえておきたいコード
    R2M
    R2M 2023/01/25
  • Web フロントエンドの実装において本来の機能を損なってはいけない

    Web フロントエンドの実装において来の機能を損なってはいけない 2022.12.24 データの取得・ルーティング・フォームの値の管理に至るまで JavaScript で制御するようになった結果、来備わっていた機能を損なう形で実装されるような間違いが起きるケースも発生してしまいました。見た目上操作に不都合がないのですが、修飾キーが有効でなかったりと、とある要素が当然に持っているべき機能が失われていることがよくあります。 昨今の Web フロントエンドの開発においては、ReactVue.js などを利用した SPA を採用することが多くなりました。従来の MPA と比較して、リンククリック時やフォーム送信時にページリロードを挟まないので、高速な画面遷移を実現できるため、快適な操作を実現できます。 一方データの取得・ルーティング・フォームの値の管理に至るまで JavaScript

    Web フロントエンドの実装において本来の機能を損なってはいけない
  • 図で分かるReact18のしくみ

    これは何? この記事はReact18がどのように動いているのかをまとめた記事です。なるべくコードの記載はせず、図を使用して読みやすさを重視しています。また、これからReactの内部のコードを読む予定の方のために、各セクションの終わりにアコーディオン形式でGitHubのリンクを貼っています。 ※ この記事はnote株式会社 Advent Calendar 2022 の17日目の記事です。 対象読者 Reactの内部コードを読む気は無いが、裏で何をしているのか把握しておきたい方 これからReactの内部コードを読もうと思っている方 暇な方 Fiberについて まず最初に、Reactのドキュメントを漁っていると度々出現する「Fiber」についてお伝えします。 そもそもFiberとは何か 一部例外はありますが、1個のFiberは1個のコンポーネント(<MyComponent>や<div>など)管理

    図で分かるReact18のしくみ
    R2M
    R2M 2022/12/19
  • 【脱ランタイムCSS in JS】styled-componentsを別のCSS in JSに自動置換するCLIツールの開発

    1.はじめに 記事はサイボウズの夏インターン(2022年)で取り組んだ内容の紹介を行います。インターンでは、サイボウズのフロントエンド領域における横断的組織であるフロントエンドエキスパートチームに配属されました。5日間のインターン期間でstyled-componentsを別のCSS in JSに自動置換するCLIツール・extract-styledの開発に取り組みました。 2. extract-styledの紹介 実装したextract-styledは、以下のようなCLI経由の実行を通して、styled-componentsで定義されたReactコンポーネントをtargetに指定した任意のCSS in JSに変換することができます。(現時点では変換先としてlinaria・vanilla-extractに対応) $ extract-styled \\ --path ./src/compon

    【脱ランタイムCSS in JS】styled-componentsを別のCSS in JSに自動置換するCLIツールの開発
  • React/Next.jsでの俺的ベストプラクティスを見てくれ

    木瓜丸です。 最近になって、やっとNext.jsを上手く使いこなせてるんじゃないか?!と思えるようなコンポーネントの設計手法を見つけたので、Zennにまとめてみたいなと思います。 この記事で触れること この記事では、主にページ単位でどのように状態管理を行うのかに焦点を当てることにします。 コンポーネントの管理の仕方などは特に着目しませんがご了承下さい。 hooksの導入 React初心者の方は最初に疑問に思うと思いますので、hooksについて触れておきます。 hooksというのは、Reactによって提供されているuseState, useEffectといったやつや、それらを組み合わせて作ったオレオレ状態管理基盤の総称です。 この記事で用いる基的なhooksをいくつか紹介します。 useState その名の通り、状態を持つ変数を作ってくれます。 const Hoge = () => { c

    React/Next.jsでの俺的ベストプラクティスを見てくれ
    R2M
    R2M 2022/08/21
  • 次世代のカメラパッケージreact-camera-proの紹介

    経緯 今回、社内で開発中のWebアプリにカメラの機能を実装する必要があり、npmでもダウンロード数が最も多いreact-webcamを使うことを検討していたのですが、色々あって断念した話です。 (react-webcamの批判ではなく、自分たちに合わなかったという事だけ誤解しないでいただければ助かります) 断念した理由 当然ですが、この開発中のWebアプリでは画質が要求されていてreact-webcamでは、その画質を満たすことができませんでした。 react-webcamの問題点 もしかしたら自分の技量不足で対処する方法があったのかもしれませんが、 時間的制約などがあり2つ問題が浮上しました react-webcamはカメラのスクリーンショットをbase64に変換する過程で画質が下がってしまう (説明が難しいのですが、)スクリーンショットの出力サイズがカメラのアスペクト比に依存する 画質

    次世代のカメラパッケージreact-camera-proの紹介
  • Reactに有利なベンチマークを作ってみた - Qiita

    皆さんこんにちは。現在、フロントエンドでは宣言的UIが大流行しており、そのためのライブラリもReactを筆頭に複数存在しています。 ライブラリが複数存在するところには当然のように比較や論争が起こるものですが、UIライブラリの場合はパフォーマンスがよく焦点となります。 筆者はReactの信者ですが、Reactは古株ということもあってか、最近の議論ではReactは他のライブラリと比較されるかませ犬のような役割を担うのがよく見られます。「仮想DOMは必要ない」といった類のものです。 しかし、筆者の考えではReactは今でも、もっとも真剣にパフォーマンスに取り組んでいるUIライブラリです。特に、Reactはパフォーマンスを高いユーザーエクスペリエンスのための手段として捉えており、ドキュメントにもユーザーエクスペリエンスという言葉が多く出てきます。 そこで、今回はReactが最も有利になるようなベン

    Reactに有利なベンチマークを作ってみた - Qiita
  • React、過剰に複雑な代物。 - Qiita

    はいさい!ちゅらデータぬオースティンやいびーん! 今回の記事は筆者に珍しく、技術紹介ではなく、僕の個人的な意見を書きます。あくまでも、自説です。 React自体は画期的で、プログラミング界に貢献したプロジェクトだと思っていますし、完全に否定したいわけではありません。 Reactに対する違和感=芽生えては大きく育った種 筆者はReactがとても好きでした。JavaScriptが好きになったきっかけもReactでした。何から何までもReactで書き直して、Custom Hooksを作って、refを子部品に渡したり、バリバリ満喫していました。 Vue仕事の関係で習得せざるを得なくなったのですが、Vueは最高に大嫌いでした。これならReactで書き直してやるぅ!と思ったりも。 Reactについて社内でも導入を推進したり、React入門の勉強会を開いたりもしています。 しかし、そんな筆者は、最近に

    React、過剰に複雑な代物。 - Qiita
    R2M
    R2M 2022/07/07
  • React Query を使っていて気になった SWR とのいくつかの違い | DevelopersIO

    MAD 事業部の高橋ゆうきです。 REST API である場合、プライベートでは SWR を使うことが多いのですが、昨年から案件では React Query を使っているのでいくつかの違いを感じることがありました。ここでは React Query のドキュメントにある表 から気になった違いをいくつかピックアップしてみます。 比較 Query Key Change Detection React Query - Deep Compare (Stable Serialization) SWR - Shallow Compare Deep Compare (Stable Serialization) 2021 年 2 月 20 日現在上記のように記載されていますが、SWR も 1.1.0 以降は ドキュメントにも記載されているように、stable serialization となっています。 Q

    React Query を使っていて気になった SWR とのいくつかの違い | DevelopersIO
    R2M
    R2M 2022/07/03
  • React Query のレンダリング最適化を目指した話 - Techtouch Developers Blog

    エンジニアmacchii です。この記事はテックタッチアドベントカレンダー 14 日目の記事です。 テックタッチでは React を利用して WEB フロントエンドを開発しています。あわせて、リモートデータの取得、更新、キャッシングには React Query を導入しています。記事では、簡単なタスク管理アプリを題材に、「React Query の再レンダリングを最適化するテクニック」紹介します。 ja.reactjs.org react-query.tanstack.com TL;DR はじめに React Query は取得データを厳密に比較(deep compare)する 参照していないプロパティの変更でも再レンダリングが発生する notifyOnChangeProps オプション select オプション まとめ TL;DR React Query は取得データを厳密に比較(

    React Query のレンダリング最適化を目指した話 - Techtouch Developers Blog
    R2M
    R2M 2022/07/03
  • ReactQueryでキャッシュを最大限利用する

    こんにちは、柴田(@shibe97)です。 久々に普通の技術記事です。 microCMSでは状態管理ライブラリとしてReact hooksベースのReactQueryを利用しています。 ReactQueryといえば、主にデータの取得時の状態管理の例が紹介されていることが多いです。 家の例: function Example() { const { isLoading, error, data } = useQuery('repoData', () => fetch('https://api.github.com/repos/tannerlinsley/react-query').then(res => res.json() ) ) if (isLoading) return 'Loading...' if (error) return 'An error has occurred: '

    ReactQueryでキャッシュを最大限利用する
    R2M
    R2M 2022/07/03
  • 【React/Vue.js】コンポーネント設計の(個人的)ベストプラクティス | Offers Tech Blog

    概要 こんにちは、Offers を運営している株式会社 overflow の Software Engineer(主戦場はフロントエンド)の Kazuya です。今回は、ReactVue.js などの SPA フレームワークにおけるコンポーネント設計について紹介します。 昨今のフロントエンド開発では、コンポーネント指向での開発がスタンダート化しつつありますが、コンポーネント設計には厳格なルールが無く、どのように設計すればいいか悩む方も多いのではないでしょうか?(筆者は沼にはまりました) コンポーネントの単位はどの程度に分割すべきなのか、状態管理はどうすればいいのか、API 通信はどこですべきなのかなど、一言にコンポーネント設計と言っても考えるべき項目が多いです。チーム開発では、認識があっていないとコードが魔境になることもしばしばあると思います。(筆者の経験談より) そこで今回は、数々

    【React/Vue.js】コンポーネント設計の(個人的)ベストプラクティス | Offers Tech Blog
  • なぜReactは標準でComponentをmemo化しないのか?

    はじめに 普段はスタートアップでBtoB SaaSの開発をしているtaroと申します。 今回は、Reactのmemo化について考えている中で抱いた 「なんでReactは標準でComponentをmemo化していないんだろう?」 という疑問を解消するために、色々と調べたり考えたりした内容をまとめました! 途中でrenderのタイミングや、memo化で再renderが抑えられる理由などの前提知識の復習も含めていて、memo化について詳しくない方もmemo化の勉強にもなると思うので、ぜひぜひ読んでみてくださいー! なぜこんな疑問を抱いたのか? まずはそもそも僕がタイトルにあるような疑問を抱いた背景です。 疑問を抱くまでの思考プロセスはこんな感じです。 「再renderが余分に走ってて画面が重いから最適化したいなー」 →「React.memo()を使ってComponentをmemo化しよう!」 →

    なぜReactは標準でComponentをmemo化しないのか?
    R2M
    R2M 2022/05/23
  • Horizon UI: Free React Admin Template for Trendy Dashboards

    Download our Free React Admin Dashboard Template! Integrated with Chakra UI, NextJS, TailwindCSS, Shadcn UI, and more, it comes with 70+ UI components for a sleek dashboard experience.

    Horizon UI: Free React Admin Template for Trendy Dashboards
    R2M
    R2M 2022/04/20
  • Hooks時代のReactライフサイクル完全理解への道

    はじめに これはクラスコンポーネントのライフサイクルを理解した上で、それに対応するように関数コンポーネントのライフサイクルを理解しようという試みです。 厳密にはReactのライフサイクルはクラスコンポーネントと関数コンポーネントそれぞれで違う概念を持っているようで、それぞれのライフサイクルに紐付けて考えるという行為自体がナンセンスな可能性がありますが、理解の手助けになれば幸いです。 そのため、なるべくわかりやすくするために、厳密でない言い方をすることがあります。ご了承ください。 もし明らかにまずい言い回し、もしくは間違って認識しているものがある場合はコメントにて教えていただけると嬉しいです。 モチベーション 僕はReactの経験がクラスコンポーネントはちょっとだけ書いたことがあるくらいで、ほぼ関数コンポーネント×hooksから入ったようなもなのでいまいちライフサイクルが理解できていない。

    Hooks時代のReactライフサイクル完全理解への道
    R2M
    R2M 2022/03/16