next.jsとnetlifyを使用して連絡先フォームを作成する方法
next.jsで効率的な連絡先フォームを構築し、強力なスパム検出をネットライディングして統合します!この記事では、確認ページで連絡先フォームを作成し、Netlifyの組み込み機能を使用してスパムアンチスパム機能を改善するように導きます。
Next.jsは、高性能でスケーラブルなReactアプリケーションを構築できる強力なReactフレームワークです。 Netlifyと組み合わせることで、サーバー側のコードを作成せずに連絡先フォームをすばやく構築できます。
Netlifyフォームはセットアップに便利で、無料バージョンが利用可能です(各Netlifyサイトは最大100の無料時間からフォームを送信できます)。提出されたフォームは、Netlifyの内蔵スパムフィルター(Akismetを使用)を自動的に渡され、スパム検出を強化するためのさまざまな構成オプションを提供します。
連絡先フォームを作成します
next.jsアプリケーションで、 ContactForm
コンポーネントを作成して、連絡先ページにフォームをレンダリングします。フォームを/contact
パスの下でレンダリングする場合は、タグと入力フィールドを含むpages/contact.js
ファイルの次のContactForm
コンポーネントを使用する必要があります。
const contactform =(/ * code see */ exlow);
次のコードスニペットは、名前、会社、電子メール、メッセージフィールドを備えたフォーム、および送信ボタンを作成します。フォームを送信した後、 /contact/?success=true
にリダイレクトされますaction
現在、クエリパラメータがsuccess
た場合とまったく伴わないページの見た目に違いはありません。後で更新します。
現在のContact.js
ファイルは次のとおりです。
「React」からのImport React; const contactPage =()=> { const contactform =(/*上記のコードスニペットのコード*/) 戻る ( <div> <h1 id="お問い合わせ">お問い合わせ</h1> {contactform} </div> ); }; デフォルトの連絡先をエクスポートします。
基本フォームの設定が完了したら、Netlifyが将来のサイトの展開でフォームを自動的に認識するように、情報を追加する必要があります。これを行うには、フォームを更新し、 data-netlify="true"
プロパティとフォーム名を含む非表示の入力フィールドを追加する必要があります。 Netlifyダッシュボードで、サイトに移動し、[フォーム]タブをクリックして、非表示フィールドに設定された名前に基づいてフォーム応答を表示します。重要なことに、サイトに複数のフォームがある場合は、各フォームに一意の名前を設定して、ネットライフを正しく設定する必要があります。
{/*コードについては以下を参照*/}
サイトを正常に展開してNetLifyを展開し、 data-netlify
属性とform-name
フィールドを追加した後、展開されたサイトにアクセスしてフォームに入力できます。フォームを送信した後、 https://app.netlify.com/sites/site-name/forms
( site-name
はサイト名)に移動し、フォームが正常に設定されている場合は、最新のフォーム提出履歴を表示する必要があります。
確認ページにリダイレクトします
ユーザーエクスペリエンスを改善するには、URLが/contact/?success=true
に変更されたときにフォームが送信された後、確認ページにリダイレクトするロジックを追加する必要があります。フォームが送信されたときにまったく異なるページにリダイレクトすることもできますが、クエリパラメーターを使用すると、次のルーターを使用して同様の効果を達成できます。クエリパラメーターに基づいて、確認ページまたはフォームの可視性を決定する新しい変数を作成できます。 import { useRouter } from "next/router";
next/router
ルーターを使用して、現在のクエリパラメーターを取得できます。
const router = userouter(); const cunsimationscreenvisible = router.query?.success && router.query.success === "true";
この例では、ページに表示されていると同時に、次のステートメントを使用して、フォームが表示されるかどうかを判断できます。
const formvisible =!cumponationscreenvisible;
ユーザーにフォームを再提出するオプションを提供するには、クエリパラメーターをクリアしてフォームにボタンを追加してフォームをリセットできます。 router.replace
を使用する( router.push
ではなく)ページを更新するだけでなく、現在のページをクエリパラメーターを含まないバージョンに置き換えます。
router.replace( "/contact"、undefined、{shallow:true})
その後、フォームが表示されるかどうかに基づいて、フォームを条件付きでレンダリングできます。
{formvisible?contachmessage}
上記に基づいて、次のコードを使用して、クエリパラメーターに基づいてフォームを条件付きでレンダリングできます(フォームが送信されたときに更新されます):
「React」からReact、{UseState}をインポート。 "next/router"から{userouter}をインポートします。 const contactPage =()=> { const [submittername、setsubmittername] = uesestate( ""); const router = userouter(); const ConfirmenationScreenvisible = router.query?.success && router.query.success === "true"; const formvisible =!cumponationscreenvisible; const commisationmessage =(); const contactform =(/*最初のコード例のコード*/); 戻る ( フォームを提出していただきありがとうございます。 24〜48時間以内にご連絡いたします。
); }; デフォルトの連絡先をエクスポートします。お問い合わせ
{formvisible?contachmessage}
非表示のロボットフィールドを追加します
フォームのコア機能が完全になったので、デフォルトに含まれるAkismetに加えて、フォームに追加のスパム検出を追加できます。この機能はdata-netlify-honeypot="bot-field"
プロパティをフォームに追加することで有効にできます。
{/*コードについては以下を参照*/}
また、入力を含むbot-field
と呼ばれるタグを含む新しい非表示段落を作成する必要があります。このフィールドはロボットに「見える」が、人間には「見える」。この隠されたフィールドが入力されると、Netlifyはボットを検出し、提出物をスパムとしてマークします。
<p hidden> <label>このアイテムに記入しないでください:</label> <input type="text" name="bot-field"> </p>
さらなるカスタマイズ
- Netlifyがサポートする別のスパム保護オプションを探索できます。これは、フォームをNetlifyに追加するためにRecaptcha 2を追加することです。
- フォームを更新し、ファイルのアップロードを許可できます。
- フォーム提出の通知を設定できます。これは、
https://app.netlify.com/sites/[your-site-name]/settings/forms
完全なコード
完全なサイトコードはGitHubで利用できます。 (記事に書かれたものがある場合は、githubリンクを提供してください)
追加コンテンツ
次のコードには、議論したすべてのコードと、名前フィールドで提出されたものを使用してカスタムサブジェクト行を設定するロジックが含まれています。 (コードを提供してください)
上記のコードスニペットには、元のドキュメントに従って完全なコードを補充する必要があることに注意してください。 私は元の文書に基づいて書き直して磨くように最善を尽くし、元の意味を変えずに擬似オリジナルの創造をするよう努めました。
以上がnext.jsとnetlifyを使用して連絡先フォームを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

今週のプラットフォームニュースのラウンドアップで、Chromeは、Web開発者のロード、アクセシビリティ仕様、およびBBCの動きのための新しい属性を導入します

これは私が初めてHTML要素を見ていることです。私はしばらくの間それを知っていましたが、まだスピンしていませんでした。かなりクールです

購入またはビルドは、テクノロジーの古典的な議論です。自分で物を構築することは、あなたのクレジットカードの請求書にはラインアイテムがないため、安価に感じるかもしれませんが

今週のラウンドアップ、タイポグラフィを検査するための便利なブックマークレットである。

しばらくの間、iTunesはポッドキャストの大きな犬だったので、「ポッドキャストにサブスクライブ」をリンクした場合:

サイトの訪問者と使用データを追跡するのに役立つ分析プラットフォームがたくさんあります。おそらく、特にGoogleアナリティクスが広く使用されています
