Cybozu Frontend Monthly #37

タイトル画像

イベント概要

サイボウズフロントエンドマンスリー は、サイボウズ社内で行っているフロントエンド情報共有会「フロントエンドウィークリー」の公開版です。

その月に気になったフロントエンドの情報を、サイボウズのフロントエンドエキスパートチームのメンバーが共有していきます。

このイベントのハッシュタグは #サイボウズフロントエンドマンスリー です。

※フロントエンドウィークリーとは

毎週火曜の 17:00 〜 18:00 で社内向けに行っているフロントエンドの気になる記事を紹介する会です。2016年3月15日から行われています。
ハッシュタグ #サイボウズフロントエンドウィークリー で実況しています。

zennのpublicationにてウィークリーのまとめも投稿していますので、ぜひこちらもご覧ください。 https://zenn.dev/p/cybozu_frontend

開催日

2023年07月25日

イベントページ

https://cybozu.connpass.com/event/289211/

配信URL

https://youtu.be/F1eTcBAh5sM?si=NKaYba9G1yO_NBVa

メンバー


コンテンツ

👀 Notable Articles

Panda CSSKuma UI

Chakra UI から、CSS-in-JS ライブラリである Panda CSS がリリースされました。以前に公開された Chakra UI のロードマップに関する記事 The future of Chakra UIにて、“Panda” の名称で Zero runtime CSS-in-JS に取り組んでいる旨は紹介されており、それが今回正式にリリースされた形です。Zero runtime に加えて、TypeScript による TypeSafe な開発・Cascade Layers などモダンな CSS 技術を利用した構成・Atomic CSS によるパフォーマンス・Next.js App Router への対応など、昨今の CSS フレームワークが持っている特徴や機能を多く兼ね備えているようです。

また、同時期にヘッドレスな UI コンポーネントライブラリである Kuma UI もリリースされました。こちらは @poteboyさんがメンテナです。Runtime CSS-in-JS(styled-components など)と Zero-Runtime CSS-in-JS(Vanilla Extract など)の両方の恩恵を得られる Hybrid Approach を採用しているのが特徴です。

Panda CSS、Kuma UI 共に、従来の CSS-in-JS が持っている良い点を継承しつつも、同時に課題とされていた点もそれぞれのアプローチで解消しており、これからのフロントエンドでの CSS 開発の大きい選択肢として抑えておく必要があるな、という印象を持ちました。

日経電子版での自作 SSR フレームワーク基盤について

日経電子版で利用されている自作の SSR フレームワーク基盤の紹介と、日経が Next.js をどう使っているかの紹介記事です。

記事中では、なぜ日経電子版が SSR フレームワークを自作しているかの理由や、パフォーマンス面での工夫について触れています。大きなモチベーションとして、React そのものではなく JSX による型や補完が利用できるテンプレートとしての利用をあげているところが特徴的です。

リソースの配置をコントロールすることでサービス間で共通化したり、ログを利用しやすくするなど参考になる取り組みが多いです。

また、日経電子版以外では Next.js を利用しているサービスもあるとのことですが、そちらでも LinkImage といった Next.js の機能を使わないアプローチや、ビルドツールとして Next.js を利用するという事例について紹介しています。

How React 18 Improves Application Performance

Vercel が 「React18 でどのようなパフォーマンス改善がなされたのか」を図とサンプルコードでわかりやすく解説してくれている記事です。

最初に「メイスレッドにおけるロングタスクとはどのくらいか?」という話から、TBT(Total Blocking Time),INP(Interaction to Next Paint)など CoreWebVitals で計測される指標との関連性を説明することでパフォーマンスに知見の少ない人でも読みやすい導入となっています。

その後、React17 以前のレンダリング方式と React18 でのレンダリング方式の違いを図とコード例を使って解説しています。特に React18 でのレンダリング方式concurrent renderingの特徴である描画の優先度づけとスレッド制御、複数バージョンの virtualDOM 生成などは他の React18 の機能を理解する上でも知っておくと良さそうです。

さらに React18 のレンダリングの説明に続いて、Transition の利用、Server Components、Suspense、DataFetch とキャッシュなど React18 で導入された新機能とそれらがパフォーマンスに与える影響などを解説しています。

全体を通して前の章で説明した知識で理解していけるよう構成されており、React18 での改善を概観するのにぴったりの記事ではないでしょうか。


🗓 Monthly Articles

📖 Framework, Library

💬 Languages

⚡️ Services

🖥 Browsers

🦆 Others


フロントエンドエキスパートチームについて

https://speakerdeck.com/cybozuinsideout/frontendexpert-team