웹 구성 요소 구축 101 - 4부
7530 단어 javascriptwebcomponents
3부에서 중단한 부분부터 시작하겠습니다. 이 기사의 소스 코드에 액세스하려면 https://github.com/tebinraouf/learning-fast/tree/building-web-components-101-part-4에서 프로젝트를 복제할 수 있습니다.
또는 Stackblitz를 사용할 수 있습니다.
stackblitz.com
속성을 사용하여 웹 구성 요소에 데이터를 전송/전달합니다. 이벤트는 데이터를 가져오거나 웹 구성 요소의 소비자에게 데이터를 보내 애플리케이션 논리를 구축하는 데 사용할 수 있도록 하는 데 유용합니다.
맞춤 이벤트를 만들려면 다음 두 단계를 따르세요.
여기서는
onClick
을 h1
요소에 추가하여 클릭할 때마다 새 데이터를 고객에게 보내도록 합니다. 이 경우 클릭하면 새 Albert Einstein 인용문을 다시 보냅니다. 이 새 견적을 처리하는 방법은 사용자에게 달려 있습니다. 이 예에서는 견적을 업데이트합니다.자세한 단계:
h1.template.ts
을 업데이트하고 onClick
이벤트 수신기를 추가합니다. FAST에서 이벤트 리스너를 추가하는 구문은 @click="${x => x.handler()}"
입니다. 여기서 @click
은 onClick
인 이벤트 이름이고 x.handler()
은 요소 클래스의 핸들러/컨트롤러이며 사용자 정의 요소 클래스가 생성되는 h1.ts
에 정의됩니다.import { html } from "@microsoft/fast-element";
export const template = html`
- <h1 style="color: ${x => x.color}">
+ <h1 style="color: ${x => x.color}" @click="${x => x.handler()}">
<slot></slot>
</h1>
h1.ts
을 포함하도록 handler
업데이트. 아무 이름이나 가능합니다. private handler() {
this.$emit('colorhandler')
};
이렇게 함으로써 이제 웹 구성 요소 소비자는 아래와 같이 웹 구성 요소에 사용자 지정 이벤트
colorhandler
을 추가할 수 있습니다.맞춤 요소에 ID를 추가했습니다.
<tebin-h1 color="blue" id="blue-title">Albert Einstein</tebin-h1>
그런 다음
addEventListener
을 사용하여 colorhandler
이라는 사용자 지정 이벤트를 추가합니다. <script>
document.getElementById("blue-title").addEventListener('colorhandler', function (e) {
//business logic
});
</script>
웹 요소 소비자에게 데이터를 보내는 방법은 무엇입니까?
이 예에서는 사용자 지정 이벤트
colorhandler
을 통해 새 견적을 무작위로 보냅니다. 이를 위해 emit
the colorhandler
일 때 아래와 같이 데이터를 전송합니다. private handler() {
const quotes = ["We cannot solve our problems with the same thinking we used when we created them", "The true sign of intelligence is not knowledge but imagination.", "I have no special talent. I am only passionately curious.", "The only reason for time is so that everything doesn't happen at once.", "Only a life lived for others is a life worthwhile."];
const random = Math.floor(Math.random() * quotes.length);
this.$emit('colorhandler', quotes[random])
};
데이터는 무엇이든 될 수 있습니다. 이 경우 문자열을 다시 보냅니다.
마지막으로 웹 요소 소비자는 아래와 같이 이벤트 내역 즉
e.detail
을 통해 견적을 받을 수 있습니다. <script>
document.getElementById("blue-title").addEventListener('colorhandler', function (e) {
document.getElementById("ae-quote").innerText = e.detail;
});
</script>
이제 누군가 사용자 정의 웹 요소 제목을 클릭할 때마다 설명이 새 인용구로 변경됩니다.
Reference
이 문제에 관하여(웹 구성 요소 구축 101 - 4부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tebin/building-web-components-101-part-4-o0j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)