Next.js サーバー アクションは生の JSON データではなく JSX マークアップを返すことができることをご存知ですか?
ドキュメントには明示的に記載されていませんが、機能することに嬉しい驚きを感じました。
サーバーアクションを使用してユーザーリストをレンダリングするページがあります:
UsersList コンポーネントは、ボタンのクリックによってユーザーを読み込みます:
デモ:
次に、レンダリングされたユーザーを含む JSXを返すようにサーバー アクションを変更します。
:
リーリー
UsersList コンポーネントでは、サーバー アクションの応答をレンダリングするだけです:
リーリー
ブラウザではすべて同じように動作します! エラー処理に関する注意事項
サーバーアクションでエラーがスローされた場合はどうなりますか? JSON データが返されると、アクション内でそのエラーをキャッチし、次のような独自の形式で返すことができます。
リーリー
JSX を返すときに、エラーをスローさせ、クライアント上の最も近いエラー境界でキャッチすることができます。 React のドキュメントによると、サーバー アクションは