Astro v4.9リリース!コンテナーAPIやReact 19のサポートなど

オープンソースの静的サイトジェネレーター「Astro」のバージョン4.9がリリースされました。このリリースでは、新しいコンテナーAPIの追加、React 19のサポート、安定化された実験的機能などが含まれています。
この記事では、Astro 4.9のアップデート内容について詳しく解説します。
目次
Astro 4.9の主な更新内容
コンテナーAPIの追加
Astro 4.9では、コンテナーAPIが導入されました。コンテナーAPIを使うと、AstroのコンポーネントをAstroアプリケーションの外部でレンダリングできます。この機能は、ReactやPreactのサーバーサイドレンダリングと似た機能です。
たとえば、次のようなコードでAstroコンポーネントを文字列にレンダリングできます。
import { experimental_AstroContainer as AstroContainer } from 'astro/container';import Component from './components/Component.astro';
const container = await AstroContainer.create();console.log(await container.renderToString(Component));このAPIは現在、実験的な機能として提供されています。現時点では、Vitestなどのフレームワークによるテストにおいて、Astroコンポーネントをレンダリングしやすくすることに焦点を当てているとのことです。
コンテナーAPIの詳細については、コンテナーAPIのドキュメントを参照してください。フィードバックについては、コンテナーAPIのRFCで受け付けています。
React 19サポート
Astro 4.9では、最新のReact v19への完全なサポートが追加されました。Reactの新しいフォームアクション機能にも対応しています。
たとえば、useActionStateフックを使用して、フォームの送信状態を管理できるようになっています。
import { actions } from 'astro:actions';import { useActionState } from 'react';import { experimental_withState } from '@astrojs/react/actions';
export function Like({ postId }: { postId: string }) { const [state, action, pending] = useActionState( experimental_withState(actions.like), 0, // initial likes );
return ( <form action={action}> <input type="hidden" name="postId" value={postId} /> <button disabled={pending}>{state} ❤️</button> </form> );}また、状態を追跡する必要がない場合は、Astro Actionsを直接呼び出せるようになっています。
import { actions } from 'astro:actions';
export function SignOut() { return ( <form action={actions.signOut}> <button>Sign Out</button> </form> );}AstroアクションはAstro 4.8で導入された実験的な機能です。設定方法などの詳細は、こちらの記事で紹介しています。
また、Astro Actionsの詳細やフィードバックについては、Astro ActionsのRFCを参照してください。
実験的機能の正式提供
Astro 4.6で実験的に導入されていたCSRFプロテクションや、Astro 4.3で導入されていたi18nドメインサポートが正式に利用可能になりました。
CSRFプロテクションを有効にするためには、experimental.security.csrfProtectionの代わりにsecurity.checkOriginを使用する必要があります。また、i18nドメインのサポートはデフォルトで有効化されており、experimental.i18nDomainsオプションは不要になりました。
Astro 4.9へのアップデート方法
既存のプロジェクトをAstro v4.9にアップデートするには、@astrojs/upgradeを使用できます。または、パッケージマネージャーのアップグレードコマンドを実行して手動でアップグレードできます。
npx @astrojs/upgradenpm install astro@latestpnpm upgrade astro --latestyarn upgrade astro --latestまとめ
Astro 4.9は、新しいコンテナーAPIやReact 19のサポートなど、多くの新機能と安定化された実験的機能を含むアップデートとなっています。
参考
記事をシェア
フォローして最新情報を入手
Googleの優先ソースに追加すると、このサイトの記事をGoogleで見つけやすくなります。また、ぜひXやRSSフィードもフォローしてください。
-1.png&w=1080&q=75)
生まれた時から、母国語よりも先にJavaScriptを使っていました。ネットの海のどこにもいなくてどこにでもいます。
Webフロントエンドプログラマーとして、TypeScriptを用いたWebアプリやブラウザー拡張機能を制作。Xのシャドウバン検知ツール「Shadowban Scanner」やリンクカード復活ツール「Restore Link Card」を公開し、国内外のメディアで紹介されました。iGEM 2023ではJapan-UnitedチームのWikiを制作してGrand Prizeの獲得に貢献。ブログではXやSNSの最新ニュース、不具合の検証と対処法、フロントエンド開発の知見を発信しています。



![Discordの[プロフィールのプライバシー]設定のスクリーンショット](/_next/image/?url=%2Fapi%2Fmedia%2Ffile%2Fdiscord-profile-privacy-settings.png&w=3840&q=75)
![スマートフォンのホーム画面の[Social]フォルダーを表示した写真。フォルダー内にはFacebook、Instagram、Threads、X、LinkedIn、TikTok、YouTubeのアイコンが配置されている](/_next/image/?url=%2Fapi%2Fmedia%2Ffile%2Ffacebook-instagram-threads-x-twitter-linkedin-tiktok-youtube-mobile-app-unsplash.jpg&w=3840&q=75)






