Next.js

Next.js v14 Server Actionsの導入と利用ガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Next.js v14で導入するServer Actionsとは

Next.js v14では、サーバーサイドでの処理を直接呼び出す「Server Actions」が正式リリースされました。これは、従来のAPIルートやFetch APIに依存せずに、フォーム送信やボタンクリックなどユーザー操作をきっかけにサーバー側で非同期処理を行う仕組みです。Server Actionsは、クライアントサイドでのデータ操作ではなく、サーバーサイドで実行される関数であり、セキュリティ性やパフォーマンス面で優れた特徴を持っています。以下では、具体的な導入手順と実務での利用方法を解説します。


Server Actionsの有効化手順

Next.js v14ではServer Actionsがデフォルトで有効化されているため、特別な設定は不要です。ただし、プロジェクトのバージョンや構成に応じて確認が必要な場合があります。

next.config.jsでの設定方法

Next.js v13以降であれば、next.config.jsに以下の記述を追加するだけで有効化可能です。

※注意:

  • Next.js v14では experimental.serverActions を指定する必要がなく、デフォルトで有効です。
  • プロジェクト構成に応じて、app/ディレクトリまたはpages/ディレクトリを使用しているかを確認してください。

アプリケーション構成の確認

Server Actionsは Next.js App Router(app/ディレクトリ) で使用することが推奨されます。以下に主な構成ポイントを示します。

項目 内容
ファイル配置 サーバーアクション関数は app/actions/ ディレクトリに配置することが一般的です。
使用可能な場所 Server ComponentsやClient Componentsから呼び出せます。

'use server'ディレクティブの使い方

Server Actionsの核心となるのは、use server」というディレクティブです。このディレクティブを付与した関数は、クライアント側ではなくサーバー側で実行されます。

サーバーサイド関数の定義例

以下のように関数に use server を追加し、サーバーサイドで実行する処理を記述します。

クライアントからの呼び出し方法

クライアント側(Reactコンポーネント)からServer Actionsを呼び出すには、useActionStateフックを使用します。


フォーム送信時のServer Actions実装

Server Actionsは、特にフォームの送信処理に適しています。以下にステップバイステップで解説します。

HTMLフォームの基本構成

HTMLフォームには action 属性を設定し、サーバーアクション関数を指定します。

非同期処理対応の実装例

Server Actionsは非同期処理(async/await)をサポートしています。データベースアクセスやAPI呼び出しなどに活用できます。


セキュリティベストプラクティス

Server Actionsでは、ユーザーからの入力データを信頼せず必ず検証する必要があります。以下の手法が推奨されます。

入力データの検証手法

  • ZodやYupなどのバリデーションライブラリを使用して型チェックを行う
  • next/validate モジュールを活用し、クライアントサイドとサーバーサイドで共通の検証ルールを定義

信頼性のないデータへの対応

  • クライアント側で送信されるデータは常に疑う姿勢を持つ
  • データベース操作やファイルアクセスなど、セキュリティリスクのある処理には、さらに検証を追加

注意: Server Actionsの関数内でconsole.log()alert()を使うと、クライアント側に情報が漏れる可能性があります。開発環境でのみ使用するようにしてください。


実装サンプルコードと環境構築

具体的な実装例を確認したい場合は、以下リンクからGitHubリポジトリをご覧ください。プロジェクト起動手順も記載しています。

Server Actions実装サンプルコードのGitHubリポジトリリンク


FAQとよくある質問

Server ActionsはAPIルートと何が違う?

Server Actionsは、クライアントサイドから直接呼び出せるサーバーサイド関数であり、APIルートとは別概念です。APIルートはHTTPリクエスト専用で、Server ActionsはReactコンポーネント内での処理に特化しています。

Server Actions内でデータベースアクセスをする場合の注意点は?

  • 異常時のキャッチを必ず行う
  • トランザクション管理ロック機構が必要な場合は別途実装
  • パラメータ検証をサーバーサイドで再実施

Server Actions関数内でconsole.log()を使うとどうなる?

開発環境では問題ありませんが、本番環境ではログ出力がクライアント側に送信される可能性があります。セキュリティリスクがあるため、本番環境での使用は避けてください


Server Actionsのデバッグとトラブルシューティング

Server Actionsのデバッグには以下の手順を実施してください。

  1. 開発モードで実行する
    next dev で起動し、コンソールに表示されるログを確認します。

  2. エラーメッセージの取得
    関数内で throw new Error() を使用して意図的にエラーを発生させ、クライアント側でも確認可能にします。

  3. ネットワーク監視ツールでの検証
    Chrome DevToolsやPostmanでサーバーサイドのリクエスト/レスポンスフローを追跡します。


Server Actionsの最適化とパフォーマンス

Server Actionsは非同期処理を活用するため、以下の方法で効率化できます。

  • キャッシュ戦略
    next/cache モジュールを使用して、データ取得や検索処理にキャッシュを適用

  • 並列処理の利用
    Promise.all() を活用し、複数の非同期タスクを並行して実行

  • ロードバランサー設定
    複数ノード環境ではリクエスト配分を最適化し、スケーラビリティを確保


Server ActionsとNext.js App Routerの関係性

Server ActionsはApp Routerと密接に関連していますが、以下の点に注意が必要です。

ポイント 説明
app/actions/ サーバーアクション関数を配置するディレクトリ
use server Server ComponentsやClient Componentsから呼び出せるが、動作環境に注意
ディレクトリ構成 App Routerを使用しないプロジェクトではServer Actionsの利用が制限される

まとめ

Next.js v14で導入されたServer Actionsは、従来のAPIルートよりも簡潔な実装と高いセキュリティ性を提供します。本記事で解説した設定手順や実装例を参考に、実際のプロジェクトで採用し、効率的な開発を実現してください。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Next.js