847 文字
4 分

Frontend Weekly 2025-04-25

React Labs が View Transitions、Activity、その他の実験的機能を発表#

日付:2025 年 4 月 23 日

React Labs が新しい実験的機能と開発中の機能についての最新情報を公開。View Transitions と Activity の 2 つの実験的機能が試用可能になり、その他の開発中機能の進捗も報告された。

実験バージョンをインストールすることで試すことが出来る。

Terminal window
pnpm add react@experimental react-dom@experimental

出展:React Labs: View Transitions, Activity, and more

View Transitions によるアニメーション制御#

ブラウザの View Transitions API を活用した新しい<ViewTransition>コンポーネントを導入。UI トランジションのアニメーション実装を簡素化する。

主な特徴:

  • <ViewTransition>コンポーネントでアニメーション対象要素をラップ
  • startTransitionuseDeferredValueSuspenseでトリガー可能
  • 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 パッケージを直接インストールできるようになった:

Terminal window
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設定が追加され、依存関係のスクリプトを自動的に実行できるようになった:

Terminal window
pnpm config set dangerouslyAllowAllBuilds true
pnpm 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 パターンのグロブ記法から?ワイルドカードと[]範囲指定を削除
    • 正規表現の使用を推奨
  • route.continue()での Cookie ヘッダー上書きを廃止
    • browserContext.addCookies()の使用を推奨
  • macOS 13 での WebKit サポートを終了
    • より新しい macOS へのアップグレードを推奨
Frontend Weekly 2025-04-25
https://blog.ohirunewani.com/series/frontend-weekly/2025-04-25/
作者
hrdtbs
公開日
2025-04-25
ライセンス
CC BY-NC-SA 4.0