Frontend Weekly 2025-04-25
React Labs が View Transitions、Activity、その他の実験的機能を発表
日付:2025 年 4 月 23 日
React Labs が新しい実験的機能と開発中の機能についての最新情報を公開。View Transitions と Activity の 2 つの実験的機能が試用可能になり、その他の開発中機能の進捗も報告された。
実験バージョンをインストールすることで試すことが出来る。
pnpm add react@experimental react-dom@experimental
出展:React Labs: View Transitions, Activity, and more
View Transitions によるアニメーション制御
ブラウザの View Transitions API を活用した新しい<ViewTransition>
コンポーネントを導入。UI トランジションのアニメーション実装を簡素化する。
主な特徴:
<ViewTransition>
コンポーネントでアニメーション対象要素をラップstartTransition
、useDeferredValue
、Suspense
でトリガー可能- CSS でアニメーションをカスタマイズ可能
- 共有要素トランジションのサポート
Activity による条件付き UI 表示の簡素化
新しい<Activity>
コンポーネントを導入。UI の一部を表示・非表示を宣言的に制御できる。
<Activity when={isOpen}> <div>表示・非表示を切り替えるUI</div></Activity>
主な特徴:
when
プロパティで表示条件を制御- 非表示時は DOM から完全に削除
- トランジションと組み合わせて使用可能
- コンポーネントのマウント・アンマウントを簡潔に記述
Effect 依存配列の自動化
React Compiler を使用して Effect 依存配列を自動で挿入する機能を開発中。これにより:
- 依存配列の手動管理が不要に
- Effect の理解がより直感的に
- コンパイラが IDE と連携し、デバッグ時に挿入された依存配列を表示
その他の開発中機能
- Fragment Refs:複数の DOM 要素をグループ化して参照可能に
- Concurrent Stores:外部ストアの並行レンダリングを完全サポート
- ジェスチャーアニメーション:View Transitions の拡張機能として検討中
pnpm 10.9.0 リリース
日付:2025 年 4 月 21 日
パッケージマネージャー pnpm の新バージョンがリリース。JSR パッケージのサポートと新しいビルド設定オプションを導入。
出展:Release v10.9.0 · pnpm/pnpm
JSR パッケージのサポート
JSR パッケージを直接インストールできるようになった:
pnpm add jsr:<pkg_name>pnpm add jsr:<pkg_name>@<range>
package.json
には以下のように記録される:
{ "dependencies": { "@foo/bar": "jsr:^0.1.2" }}
pnpm publish
時には、npm、Yarn、古いバージョンの pnpm と互換性のある形式に変換される。
依存関係のスクリプトを自動実行する dangerouslyAllowAllBuilds 設定
dangerouslyAllowAllBuilds
設定が追加され、依存関係のスクリプトを自動的に実行できるようになった:
pnpm config set dangerouslyAllowAllBuilds truepnpm install --dangerously-allow-all-builds
Playwright v1.52.0 リリース
日付:2025 年 4 月 17 日
E2E テストフレームワークの Playwright が新バージョンをリリース。クラス検証の新メソッドや ARIA スナップショットの機能強化、テストランナーの改善などを含む。
出展:Release v1.52.0 · microsoft/playwright
クラス検証と ARIA スナップショットの強化
要素のクラス名を検証する新メソッドtoContainClass()
を追加:
await expect(page.getByRole("listitem", { name: "Ship v1.52" })).toContainClass( "done");
ARIA スナップショットに/children
と/url
プロパティを追加:
await expect(locator).toMatchAriaSnapshot(` - list - /children: equal - listitem: Feature A - listitem: - link "Feature B": - /url: "https://playwright.dev"`);
ワーカー数の設定、フレーキーテストを失敗にするオプションなどの追加
testProject.workers
:テストプロジェクト毎のワーカー数設定が可能にtestConfig.failOnFlakyTests
:フレーキーテストの検出時にテスト実行を失敗させる設定を追加!@my-tag
、!my-file.spec.ts
:HTML レポーターでの否定フィルタリングをサポート
破壊的変更:URL パターンと Cookie ヘッダー仕様の変更、macOS 13 のサポート終了
- URL パターンのグロブ記法から
?
ワイルドカードと[]
範囲指定を削除- 正規表現の使用を推奨
route.continue()
での Cookie ヘッダー上書きを廃止browserContext.addCookies()
の使用を推奨
- macOS 13 での WebKit サポートを終了
- より新しい macOS へのアップグレードを推奨