첫 번째 Astro 아일랜드를 구축
Preact 컴포넌트를 사용하여 무작위로 선택된 환영 메시지로 방문자를 맞이하세요!
요구 사항
- Astro 프로젝트에 Preact 추가
- 홈 페이지에 Astro 아일랜드 (Preact
.jsx
컴포넌트)를 포함합니다. client:
지시어를 사용하여 아일랜드를 대화형으로 만듭니다.
Astro 프로젝트에 Preact 추가
섹션 제목: Astro 프로젝트에 Preact 추가-
실행 중인 경우 개발 서버를 종료하여 터미널을 실행합니다 (단축키: Ctrl + C).
-
단일 명령으로 Astro 프로젝트에서 Preact 컴포넌트를 사용하는 기능을 추가합니다.
-
명령줄 지침에 따라 프로젝트에 Preact 추가를 확인합니다.
Preact 인사말 배너 포함
섹션 제목: Preact 인사말 배너 포함이 컴포넌트는 인사말 메시지 배열을 prop으로 사용하고 그중 하나를 무작위로 선택하여 환영 메시지로 표시합니다. 사용자는 버튼을 클릭하여 새로운 무작위 메시지를 받을 수 있습니다.
-
Greeting.jsx
라는 이름의 새로운 파일을src/components/
에 만듭니다..jsx
파일 확장자를 참고하세요. 이 파일은 Astro가 아닌 Preact로 작성됩니다. -
Greeting.jsx
에 다음 코드를 추가합니다. -
홈 페이지
index.astro
에서 이 컴포넌트를 가져와 사용하세요.브라우저에서 미리보기를 확인하세요. 임의의 인사말이 표시되지만 버튼이 작동하지 않습니다!
-
client:load
지시어를 사용하여 두 번째<Greeting />
컴포넌트를 추가합니다. -
페이지를 다시 방문하여 두 컴포넌트를 비교하십시오. 두 번째 버튼은 페이지가 로드 될 때
client:load
지시어가 Astro에게 클라이언트 에서 JavaScript를 보내고 다시 실행하도록 지시하여 컴포넌트를 대화형으로 만들기 때문에 작동합니다. 이것을 수화된 컴포넌트라고 합니다. -
차이점이 명확해지면 수화되지 않은 인사말 컴포넌트를 제거합니다.
패턴 분석
섹션 제목: 패턴 분석살펴볼 다른 client:
지시어가 있습니다. 각각은 서로 다른 시간에 클라이언트에 JavaScript를 보냅니다. 예를 들어 client:visible
은 컴포넌트가 페이지에 표시될 때만 컴포넌트의 JavaScript를 보냅니다.
다음 코드가 포함된 Astro 컴포넌트를 생각해 보세요.
-
다섯 가지 컴포넌트 중 어느 것이 수화된 아일랜드가 되어 JavaScript를 클라이언트에 전송하게 됩니까?
-
두
<PreactBanner />
컴포넌트는 어떤 면에서 동일하고 어떤 면에서 다를까요? -
SvelteCounter
컴포넌트에 숫자가 표시되고 숫자를 늘리는 버튼이 있다고 가정합니다. 웹사이트의 코드가 보이지 않고 실시간으로 게시된 페이지만 볼 수 있다면 두 개의<SvelteCounter />
컴포넌트 중client:visible
을 사용한 컴포넌트를 어떻게 알 수 있습니까?
지식을 테스트해보세요
섹션 제목: 지식을 테스트해보세요다음 각 컴포넌트에 대해 브라우저로 전송되는 내용을 선택하세요.
-
<ReactCounter client:load/>
-
<SvelteCard />