웹 구성 요소 구축 101 - 3부
5811 단어 javascriptwebcomponentswebdev
2부에서 중단한 부분부터 시작하겠습니다. 이 기사의 소스 코드에 액세스하려면 https://github.com/tebinraouf/learning-fast/tree/building-web-components-101-part-3에서 프로젝트를 복제할 수 있습니다.
또는 Stackblitz를 사용할 수 있습니다.
stackblitz.com
사용자 정의 속성을 생성하는 방법은 무엇입니까?
2부에서는 제목 색상을 하드 코딩한 사용자 지정
<tebin-h1>
구성 요소를 만듭니다. 이 글에서는 컴포넌트를 사용할 때 커스텀 속성 값을 정의할 수 있도록 커스텀 속성을 생성해 보겠습니다.암호:
<tebin-h1>Albert Einstein</tebin-h1>
결과:
기본적으로 제목은 우리가 정의했기 때문에 갈색입니다.
//h1.style.ts
import { css } from "@microsoft/fast-element";
export const styles = css`
:host {
display: block;
}
h1 {
color: brown
}
`;
아래와 같이 컴포넌트가 사용될 때 설정할 수 있도록
color
속성을 생성하려고 합니다.<tebin-h1 color="yellow">Albert Einstein</tebin-h1>
<tebin-h1 color="#41aea9">Albert Einstein</tebin-h1>
<tebin-h1 color="blue">Albert Einstein</tebin-h1>
FAST에서 사용자 정의 속성을 생성하는 방법은 무엇입니까?
FAST는 속성을 생성하는 데코레이터를 제공합니다
@attr
. @attr
데코레이터를 사용하는 데 필요한 단계를 살펴보겠습니다.tebin-h1
구성 요소에 대한 클래스는 h1.ts
에 정의됩니다.import { FASTElement, attr } from "@microsoft/fast-element";
import { styles } from "./h1.style.js";
import { template } from "./h1.template.js";
export class H1Component extends FASTElement {
+ @attr color: string = 'brown'
}
export const h1component = H1Component.compose({
name: "tebin-h1",
template,
styles,
});
기본적으로 값은 갈색으로 설정됩니다.
h1
태그로 설정되도록 템플릿을 업데이트하는 것입니다. 이 데모에서는 인라인 스타일을 사용할 것입니다. 그러나 일반적으로 css 태그 또는 scss를 사용하여 구성 요소의 스타일을 지정합니다. h1.template.ts
는 이제 다음과 같습니다.import { html } from "@microsoft/fast-element";
export const template = html`
- <h1>
+ <h1 style="color: ${x => x.color}">
<slot></slot>
</h1>
`;
FAST는 MVVM - Model-View-ViewModel 패턴을 사용합니다. 모델인 클래스에
color
속성을 정의했으므로 ${x => x.color}
를 사용하여 뷰에 바인딩할 수 있습니다.h1.style.ts
파일에서 정의한 스타일을 삭제합니다.import { css } from "@microsoft/fast-element";
export const styles = css`
:host {
display: block;
}
- h1 {
- color: brown
- }
`;
몇 가지만 변경하면 맞춤 요소에 이제 맞춤 속성이 있습니다.
마크업:
<tebin-h1 color="yellow">Albert Einstein</tebin-h1>
<p>Life is like riding a bicycle. To keep your balance, you must keep moving.</p>
<tebin-h1 color="#41aea9">Albert Einstein</tebin-h1>
<p>Life is like riding a bicycle. To keep your balance, you must keep moving.</p>
<tebin-h1 color="blue">Albert Einstein</tebin-h1>
<p>Life is like riding a bicycle. To keep your balance, you must keep moving.</p>
결과:
다음 기사에서는 FAST에서 이벤트를 바인딩하는 방법에 대해 설명합니다.
Reference
이 문제에 관하여(웹 구성 요소 구축 101 - 3부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tebin/building-web-components-101-part-3-2e8k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)