찾다
웹 프론트엔드CSS 튜토리얼Next.js 및 NetLify와의 연락처 양식을 만드는 방법

Next.js 및 NetLify를 사용하여 효율적인 접촉 양식을 작성하고 강력한 스팸 탐지를 통합하십시오! 이 기사에서는 확인 페이지로 연락 양식을 작성하고 NetLify의 내장 기능을 사용하여 스팸 방지 기능을 향상시킵니다.

Next.js 및 NetLify와의 연락처 양식을 만드는 방법

Next.js는 고성능의 확장 가능한 반응 응용 프로그램을 구축 할 수있는 강력한 반응 프레임 워크입니다. NetLify와 결합하여 서버 측 코드를 작성하지 않고도 연락처 양식을 신속하게 구축 할 수 있습니다.

NetLify 양식은 설정하기 편리하고 무료 버전을 사용할 수 있습니다 (각 NetLify 사이트는 최대 100 번의 무료 시간까지 양식을 제출할 수 있음). 제출 된 양식은 NetLify의 내장 스팸 필터 (AKISMET 사용)를 통해 자동으로 전달되며 스팸 탐지를 향상시키기위한 다양한 구성 옵션을 제공합니다.

연락처 양식을 만듭니다

다음.js 응용 프로그램에서 연락처 페이지에서 양식을 렌더링 할 ContactForm 구성 요소를 작성하십시오. /contact 경로에서 양식을 렌더링하려면 태그 및 입력 필드를 포함하여 pages/contact.js 파일에서 다음 ContactForm 구성 요소를 사용해야합니다.

 const contactform = (/ * 코드 참조 */ 아래);

다음 코드 스 니펫은 이름, 회사, 이메일 및 메시지 필드 및 제출 버튼이있는 양식을 만듭니다. 양식을 제출 한 후 양식의 action 속성 값에 따라 /contact/?success=true 로 리디렉션됩니다. 현재, success 쿼리 매개 변수와 함께 제공 될 때 페이지가 어떻게 보이는지에는 차이가 없으며 나중에 업데이트 할 것입니다.

현재 Contact.js 파일은 다음과 같습니다.

 "React"에서 React React;
const contactPage = () => {
 const contactform = (/* 위의 코드 스 니펫*/)

 반품 (
   <div>
     <h1 id="저희에게-연락하십시오">저희에게 연락하십시오</h1>
     {contactform}
   </div>
 );
};

내보내기 기본 연락처;

기본 양식 설정을 마친 후에는 NetLify가 향후 사이트 배포에서 양식을 자동으로 인식 할 수 있도록 정보를 추가해야합니다. 이렇게하려면 양식을 업데이트하고 data-netlify="true" 속성 및 양식 이름을 포함하는 숨겨진 입력 필드를 추가해야합니다. NetLify 대시 보드에서 사이트로 이동하여 양식 탭을 클릭하여 숨겨진 필드에 설정된 이름을 기반으로 양식 응답을보십시오. 중요한 것은 사이트에 여러 양식이있는 경우 각 양식에 대해 고유 한 이름을 설정하여 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 volictationscreenvisible = router.query? .success && router.query.success === "true";

이 예에서는 페이지에서 볼 수 없으며 동시에 양식을 사용하여 양식이 표시되는지 여부를 결정할 수 있습니다.

 const formvisible =! chongryationscreenvisible;

사용자에게 양식을 다시 제출할 수있는 옵션을 제공하려면 쿼리 매개 변수를 지우고 양식을 재설정하기 위해 확인 페이지에 버튼을 추가 할 수 있습니다. router.replace ( router.push 대신)를 사용하면 페이지를 업데이트 할뿐만 아니라 현재 페이지를 쿼리 매개 변수가 포함되지 않은 버전으로 대체합니다.

 router.replace ( "/contact", undefined, {shallow : true})

그런 다음 보이는지 여부에 따라 양식을 조건부로 렌더링 할 수 있습니다.

 {formvisible? contact form : voluctationMessage}

위의 내용을 기반으로 다음 코드를 사용하여 쿼리 매개 변수를 기반으로 양식을 조건부로 렌더링 할 수 있습니다 (양식이 제출 될 때 업데이트 됨).

 import React, {usestate} "React";
"Next/Router"에서 {userouter} 가져 오기;

const contactPage = () => {
 const [submittername, setsubmittername] = usestate ( "");
 const router = userouter ();
 const volictationscreenvisible =
   router.query? .success && router.query.success === "true";
 const formvisible =! chongryationscreenvisible;

 const quicationMessage = (
   
     

양식을 제출해 주셔서 감사합니다. 24-48 시간 이내에 연락 드리겠습니다.

); const contactform = (/* 코드 첫 번째 코드 예제*/); 반품 (

저희에게 연락하십시오

{formvisible? contact form : voluctationMessage}
); }; 내보내기 기본 연락처;

숨겨진 로봇 필드를 추가하십시오

양식의 핵심 기능이 완료되었으므로 기본적으로 포함 된 Akismet 외에도 형태에 추가 스팸 탐지를 추가 할 수 있습니다. 이 기능은 data-netlify-honeypot="bot-field" 속성을 양식에 추가하여 활성화 할 수 있습니다.

 {/* 코드는 아래를 참조하십시오*/}

또한 입력이 포함 된 bot-field 라는 태그로 새로운 숨겨진 단락을 만들어야합니다. 이 분야는 로봇에게 "보이지만"인간에게는 보이지 않습니다. 이 숨겨진 필드가 채워지면 NetLify는 봇을 감지하고 제출물을 스팸으로 표시합니다.

<p hidden>
  <label>이 항목을 작성하지 마십시오.</label>
  <input type="text" name="bot-field">
</p>

추가 사용자 정의

  • NetLify가 지원하는 또 다른 스팸 보호 옵션을 탐색 할 수 있습니다. NetLify는 NetLify 양식에 recaptcha 2를 추가하는 것입니다.
  • 양식을 업데이트하고 파일 업로드를 허용 할 수 있습니다.
  • 양식 제출에 대한 알림을 설정할 수 있습니다. 이것은 이메일 알림에 맞춤 주제 필드 (숨겨질 수 있음)를 포함 할 수있는 https://app.netlify.com/sites/[your-site-name]/settings/forms 에서 설정할 수 있습니다.

완전한 코드

전체 사이트 코드는 Github에서 사용할 수 있습니다. (기사에 하나가 있다면 Github 링크를 제공하십시오)

추가 내용

다음 코드에는 우리가 논의한 모든 내용과 이름 필드에 제출 된 내용을 사용하여 사용자 정의 제목 줄을 설정하는 논리가 포함되어 있습니다. (코드를 제공하십시오)

위의 코드 스 니펫에는 원본 문서에 따라 전체 코드가 보충되어야합니다. 나는 원본 문서를 바탕으로 다시 쓰고 폴란드하기 위해 최선을 다해 원래의 의미를 바꾸지 않고 의사 원리를 만들기 위해 노력했습니다.

위 내용은 Next.js 및 NetLify와의 연락처 양식을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
커서를위한 다음 레벨 CSS 스타일커서를위한 다음 레벨 CSS 스타일Apr 23, 2025 am 11:04 AM

CSS가있는 커스텀 커서는 훌륭하지만 JavaScript를 사용하여 다음 단계로 가져갈 수 있습니다. JavaScript를 사용하면 커서 상태를 전환하고 커서 내에 동적 텍스트를 배치하고 복잡한 애니메이션을 적용하며 필터를 적용 할 수 있습니다.

Worlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionWorlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionApr 23, 2025 am 10:42 AM

2025 년에 서로를 ricocheting하는 요소가있는 대화식 CSS 애니메이션은 CSS에서 Pong을 구현할 필요가 없지만 CSS의 유연성과 힘이 증가하는 것은 LEE의 의심을 강화합니다.

UI 효과를 위해 CSS 배경 필터 사용UI 효과를 위해 CSS 배경 필터 사용Apr 23, 2025 am 10:20 AM

CSS 배경 필터 속성을 사용하여 사용자 인터페이스 스타일에 대한 팁과 요령. 여러 요소들 사이에 필터를 배경으로 배경으로 배경으로하는 방법을 배우고 다른 CSS 그래픽 효과와 통합하여 정교한 디자인을 만듭니다.

미소?미소?Apr 23, 2025 am 09:57 AM

글쎄, SVG '의 내장 애니메이션 기능은 계획대로 이상 사용되지 않았다. 물론 CSS와 JavaScript는 부하를 운반 할 수있는 것 이상이지만 Smil이 이전과 같이 물에서 죽지 않았다는 것을 아는 것이 좋습니다.

'예쁜'은 보는 사람의 눈에 있습니다'예쁜'은 보는 사람의 눈에 있습니다Apr 23, 2025 am 09:40 AM

예, 텍스트-랩을위한 점프 : Safari Technology Preview의 예쁜 착륙! 그러나 Chromium 브라우저에서 작동하는 방식과는 다른 점을 조심하십시오.

CSS- 트릭 연대기 XLIIICSS- 트릭 연대기 XLIIIApr 23, 2025 am 09:35 AM

이 CSS- 트릭 업데이트는 Almanac, 최근 Podcast 출연, 새로운 CSS 카운터 가이드 및 귀중한 컨텐츠에 기여하는 몇 가지 새로운 저자의 추가 진전을 강조합니다.

Tailwind ' s @apply 기능은 소리보다 낫습니다Tailwind ' s @apply 기능은 소리보다 낫습니다Apr 23, 2025 am 09:23 AM

대부분의 경우 사람들은 Tailwind ' S 단일 프로퍼 유틸리티 중 하나 (단일 CSS 선언을 변경)와 함께 Tailwind ' s @apply 기능을 보여줍니다. 이런 식으로 선보일 때 @apply는 전혀 약속하는 소리가 들리지 않습니다. 그래서 Obvio

릴리스가없는 느낌 : 제정신 배치를 향한 여정릴리스가없는 느낌 : 제정신 배치를 향한 여정Apr 23, 2025 am 09:19 AM

바보처럼 배포하는 것은 배포하는 데 사용하는 도구와 복잡성에 대한 보상과 복잡성이 추가됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.