대화 요소: 모달 및 팝업에 대한 새로운 접근 방식
그래서 최근에는 dialog HTML 요소가 모든 최신 브라우저 엔진에서 안정되어 현재 프로젝트에서 안전하게 사용할 수 있습니다.
당신이 묻는 이 요소의 흥미로운 점은 무엇입니까?
단 몇 분 만에 웹 앱용 모달/팝업을 만드는 데 쉽게 사용할 수 있습니다. 이 요소는 동작을 제어하는 데 사용할 수 있는 일부 메서드를 노출하고 완전히 사용자 지정할 수 있습니다.
이것은 React의 포털에 대한 훌륭한 대안으로 사용될 수 있습니다.
먼저 바닐라 JS 사용 사례를 살펴본 다음 맞춤 구성 요소를 사용하는 React의 사용 사례를 살펴보겠습니다.
뛰어들자....
HTML 요소
다음과 같이 dialog 태그를 사용하여 요소를 추가할 수 있습니다.
<dialog open>
<p>Dialog Content</p>
</dialog>
open 속성은 대화 상자가 기본적으로 표시됨을 나타냅니다. 모든 사용 사례에 대한 양식과 같은 모든 종류의 UI를 내부에 추가할 수 있습니다. 자세한 내용은 아래에서 설명합니다.
행동 양식
이 요소에 사용할 수 있는 3가지 방법이 있습니다.
close()
- 대화 상자 닫기show()
- 대화 상자를 표시합니다(버튼, 입력 등과 같은 배경 UI 요소는 여전히 상호 작용 가능하며 팝업에 사용할 수 있음)showModal()
- 일부 배경 오버레이를 사용하여 화면에 표시되는 다른 모든 UI 요소(열려 있는 다른 대화상자 포함) 위에 대화상자를 표시합니다(가장 높은 z-인덱스가 있다고 생각하면 배경 UI가 닫힐 때까지 상호작용할 수 없습니다. 모달에 사용 가능)후자의 두 기능의 차이점은 다음과 같습니다.
Note, this example contains default browser dialog without any stylings
이벤트
이 요소는 현재 조건에 따라 두 개의 이벤트를 내보냅니다.
close
- 예를 들어 Esc
키를 통해 대화 상자를 닫는 사용 가능한 내장 기능을 사용하여 사용자가 브라우저에 대화 상자를 닫으라고 지시하면 트리거됩니다. cancel
- 대화 상자가 닫히면 트리거됩니다. 앞의 경우에도 해당되므로 close
이후에도 트리거됩니다. 이 두 이벤트는 각각 기능 대안
onclose
및 oncancel
을 통해 사용할 수도 있습니다.콘솔을 열고
X
를 사용하여 대화 상자를 닫은 다음 Esc
키를 사용하십시오.반환 값
대화 상자 요소의 이 속성을 사용하여 대화 상자를 닫는 데 사용된 버튼 값을 감지할 수 있습니다. 이것은 작동하지만
<form />
속성이 method
로 설정된 "dialog"
내부 대화 상자가 있습니다. 그런 다음 양식을 제출하면 대화 상자가 자동으로 닫힙니다. 이 경우 returnValue
는 제출 버튼의 값으로 설정됩니다. <form method="dialog" />
dialog.close('This string will be assigned to returnValue');
지금까지 살펴본 모든 것을 사용하는 전체 양식 대화 상자입니다.
Note, that we are only updating the details if the form was submitted, not if user closed the dialog manually. This is detected based on the
returnValue
property value of the dialog.
오버레이 사용자 정의
대화 상자의 배경 오버레이는
::backdrop
의사 요소를 사용하여 사용자 정의할 수 있으며 배경 속성을 설정해야 오버레이에 반영됩니다.반응 대화 구성 요소
다음은 요구 사항에 따라
className
prop으로 전달된 스타일과 자식으로 내용을 추가로 사용자 정의할 수 있는 대화 요소의 반응 구성 요소 버전입니다.그게 다야, 이 사람들을 위해!
질문이나 제안이 있으시면 언제든지 저에게 연락해 주세요!
Github에서 나와 연결
Reference
이 문제에 관하여(대화 요소: 모달 및 팝업에 대한 새로운 접근 방식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/princerajroy/dialog-element-a-new-approach-to-modals-and-popups-4h3h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)