米Deno Landは、DenoのためのエッジネイティブなフルスタックWebフレームワークの最新バージョンとなる「Fresh 1.2」を、6月15日(現地時間)にリリースした。
「Fresh 1.2」では、サーバとクライアントの両方でレンダリングされるコンポーネントであるアイランドに対して、これまでのシリアル化可能なJSONの値に加えて、循環オブジェクト、Uint8Array、Preactシグナルを渡せるようになっている。この変更によって、同じシグナルを複数のアイランドに渡して、そのシグナルを使用してアイランド間で状態を共有するといった、新たなユースケースを実現できる。
あわせて、JSXの子要素をアイランドに渡すためのサポートが追加されるとともに、それらを相互にネストすることも可能になり、アプリに最適な方法で動的部分と静的部分を組み合わせられるようになった。また、アイランドを別のアイランドの中にネストした場合も検出できるようになり、ネストが発生するたびに内側のアイランドは標準のPreactコンポーネントのように扱われる。
さらに、npm:指定子が限定的にサポートされ、サーバレンダリング時とアイランドの両方で、npm:パッケージのインポートがサポートされるようになった。npm:指定子を使用するためのローカルフォルダは不要で、Deno Deployは現在npm:指定子をサポートしていないため、FreshアプリケーションをDeno Deployにデプロイする際には、指定子が使えないことに注意する必要がある。
ほかにも、ルート内でHEADリクエストのハンドラを宣言可能になるとともに、ctx.renderで作成されたResponseのステータスとヘッダを設定できるようになった。また、以前は./islandsディレクトリの中に直接ファイルで行う必要があったアイランドの宣言を、./islandsディレクトリ内のフォルダに含められるようになったほか、プラグインの非同期レンダリングのサポート、$fresh/server.tsにおけるテストに使用可能なハンドラ関数をFreshマニフェストから作成できる新たなcreateHandler関数のエクスポートの対応など、さまざまな機能追加・改善が行われている。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です