웹 구성 요소/사용자 정의 요소는 UX를 더욱 효율적이고 확장 가능하게 만드는 몇 가지 뛰어난 기능을 제공하지만 팀이 구성 요소에 대해 좋은 경험을 하지 못하게 할 수 있는 몇 가지 "문제"가 있습니다.
문제
맞춤 요소/웹 구성 요소의 가장 큰 장점 중 하나는 때때로 어려울 수 있습니다. 어디서나 사용할 수 있습니다. 프레임워크에서 사용되는지, 유형이 안전한 환경에서 사용되는지, PHP와 같은 언어로 서버에서 렌더링되는지, JavaScript의 creatElement 함수를 사용하여 프로그래밍 방식으로 생성되는지, 심지어 일반 HTML에서 사용되는지 알 수 없습니다.
문제는 웹 구성 요소 API가 올바르게 구현되었는지 확인할 수 있는 일관된 방법이 없다는 것입니다. 이 때문에 당사 컴포넌트 라이브러리의 PR 체크리스트 항목 중 하나는 다음과 같습니다.
✅ 속성과 속성은 설정, 해제, 잘못 설정된 경우에도 작동합니다.
예를 들어, 우리 라이브러리에는 기본 요소에는 일부 지정된 값이 있는 유형 속성이 있습니다. 라디오 및 체크박스와 같은 일부 다른 컨트롤에 대한 특정 구성 요소가 있기 때문에 동일한 옵션이 모두 동일하지는 않습니다.
/** A string specifying the type of control to render. */ @property() type: | 'color' | 'date' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'text' = 'text';
참고: 코드 예시에서는 Lit를 사용하고 있지만 여기서 논의한 원칙은 다른 라이브러리 및 프레임워크에도 적용될 수 있습니다.
이 속성을 테스트할 때 일관되지 않은 결과가 나타납니다.
- 설정
- 모든 것이 예상대로 작동합니다.
<my-input type="color"></my-input> <my-input type="date"></my-input> <my-input type="email"></my-input> <my-input type="number"></my-input> <my-input type="password"></my-input> <my-input type="search"></my-input> <my-input type="tel"></my-input> <my-input type="text"></my-input>
- 설정되지 않음
- 기본값으로 인해 속성이 설정되지 않은 경우에도 구성요소가 제대로 작동합니다
- 내부 HTML 요소는 탄력적이지만 구성 요소의 사용자 정의 논리 및 유효성 검사가 중단되므로 속성이 정의되지 않은 경우 구성 요소가 올바르게 렌더링됩니다.
// When the attribute is not set <my-input></my-input> // When the property is `undefined` (example using JSX) <my-input type="{undefined}"></my-input>
- 설정이 잘못됨
- type 속성 값을 "rubbish"로 설정하면 텍스트 입력이 렌더링되지만 맞춤 논리와 유효성 검사도 중단됩니다.
- 유효한 HTML 입력 유형이지만 구성 요소에 대해 지정한 값이 아닌 값으로 설정하면 사용자 정의 논리 및 유효성 검사뿐 아니라 스타일/디자인도 깨뜨리는 구성 요소용 컨트롤이 아닌 컨트롤이 렌더링됩니다. .
<!-- not a real type --> <my-input type="rubbish"></my-input> <!-- we don't want users using this type --> <my-input type="range"></my-input>
여기에서 이 예를 테스트할 수 있습니다.
어떻게 해결하나요?
네이티브 HTML 요소가 "설정, 설정 해제 및 잘못 설정" 테스트를 통과한 것 같으니 이를 통해 학습할 수 있는지 살펴보겠습니다.
네이티브 입력의 속성을 잘못 설정하고 속성 값을 기록해 보니 왜 작동하는지 알 수 있었습니다.
<!-- set the value to a non-standard type --> <input type="rubbish"> <input> <p>If an invalid value is assigned to the attribute or property, it falls back to a default value. We should be able to do the same and still maintain strong typing.</p> <p>Let's start by creating a list of valid values and a type for our property.<br> </p> <pre class="brush:php;toolbar:false">const inputTypes = [ 'color', 'date', 'email', 'number', 'password', 'search', 'tel', 'text', ] as const;
배열을 사용하여 TypeScript 유효성 검사를 위한 공용체 유형을 생성할 수 있습니다.
/** A string specifying the type of control to render. */ @property() type: | 'color' | 'date' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'text' = 'text';
이제 일부 유효성 검사 논리를 사용하여 맞춤 요소 속성을 업데이트할 수 있습니다. 기존 속성을 표준 JavaScript 클래스 getter 및 setter로 변환하면 이를 수행할 수 있습니다.
<my-input type="color"></my-input> <my-input type="date"></my-input> <my-input type="email"></my-input> <my-input type="number"></my-input> <my-input type="password"></my-input> <my-input type="search"></my-input> <my-input type="tel"></my-input> <my-input type="text"></my-input>
최종 결과는 다음과 같습니다.
결론
이 새로운 유효성 검사를 통해 입력 구성 요소는 이전보다 훨씬 더 탄력적이며 필요한 경우 더 복잡한 유효성 검사도 가능합니다. 이 방법은 일부 속성, 특히 스타일링을 위한 속성에 과잉일 수도 있습니다. 이러한 시나리오에 대해서는 이 기사를 꼭 확인하세요.
위 내용은 방탄 웹 구성 요소 API의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

최근에 색상에 대한 도구, 기사 및 리소스가 많이있었습니다. 당신의 즐거움을 위해 여기에 반올림하여 몇 개의 탭을 닫을 수 있습니다.

Robin은 이전에 이것을 다루었지만 지난 몇 주 동안 그것에 대해 약간의 혼란을 듣고 다른 사람이 설명하는 데 찌르는 것을 보았습니다.

나는 샌드위치 사이트의 디자인을 절대적으로 좋아합니다. 많은 아름다운 특징 중에는 무지개가있는이 헤드 라인이 스크롤 할 때 움직이는 밑줄이 있습니다. 그것은 아닙니다

많은 인기있는 이력서 디자인은 그리드 모양으로 섹션을 배치하여 사용 가능한 페이지 공간을 최대한 활용하고 있습니다. CSS 그리드를 사용하여 레이아웃을 만듭니다

페이지 새로 고침은 일입니다. 때로는 반응이 없다고 생각하거나 새로운 콘텐츠를 사용할 수 있다고 생각할 때 페이지를 새로 고침합니다. 때때로 우리는 단지 화가났습니다

React 세계에서 프론트 엔드 애플리케이션을 구성하는 방법에 대한 지침은 거의 없습니다. (“옳은 느낌”이 될 때까지 파일을 움직여도 롤). 진실

대부분의 경우 사용자가 응용 프로그램에 적극적으로 참여하거나 일시적으로 비활성화되어 있는지에 대해 신경 쓰지 않습니다. 비활성, 의미, 아마도 그들

Wufoo는 항상 통합으로 훌륭했습니다. 캠페인 모니터, MailChimp 및 Typekit과 같은 특정 앱과 통합이 있지만


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

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

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
