질문이요
컴포넌트를 슬롯 위주로 만들어놓으면 나중에 쓸때도 유용하게 쓸수있나요? 컴포넌트 관리를 하려는데 슬롯으로만 만들어놓으면 되겠죠?!
답변 2
1
저 같은 경우 보통 재사용이 많이 발생하는 컴포넌트의 경우 props와 slot을 함께 이용하는 경우가 많습니다. 다음은 modal팝업을 간단하게 재사용 가능한 컴포넌트로 만든 예제인데요. modal의 제목과 내용을을 <slot name="header"></slot>, <slot ></slot> 로 정의하고, modal이 나타나고 사라지는 것은 export let modalActive = false로 해서 세팅해주면, 필요한 부분에서 이 모달 컴포넌트를 불러서 사용할 수 있습니다. 요약하자면, 반복적으로 나타나는 html영역은 slot으로 하시고, 동적 제어는 props로 하면 된다고 이해사시면 되겠습니다.
//-- modal.svelte -----------------------
<script>
export let modalActive = false
function close() {
modalActive = false
}
</script>
{#if modalActive}
<div class="modal-background" on:click={close} ></div>
<div class="modal" role="dialog" aria-modal="true" >
<slot name="header"></slot>
<hr>
<slot></slot>
<hr>
<!-- svelte-ignore a11y-autofocus -->
<button autofocus on:click={close}>close modal</button>
</div>
{/if}
//-- app.svelte -----------------------
<script>
import Modal from './modal.svelte'
let modalActive
let modalActive1 = false
let modalActive2 = false
</script>
<button on:click={() => modalActive1 = true}>
Modal PopUp 1
</button>
<button on:click={() => modalActive2 = true}>
Modal PopUp 2
</button>
<Modal bind:modalActive={modalActive1}>
<h2 slot="header">MODAL POPUP TITLE 1</h2>
<p>MODAL POPUP CONTENT 1</p>
</Modal>
<Modal bind:modalActive={modalActive2}>
<h2 slot="header">MODAL POPUP TITLE 2</h2>
<p>MODAL POPUP CONTENT 2</p>
</Modal>
프로젝트 실행이 되지 않아 menu API 테스트가 불가합니다 ㅠ
0
134
9
프론트 api.js의 요청 headers 옵션의 cors 관련 설정 질문
0
61
2
모듈 버전이 안맞아서 발생하는 문제 같습니다;;;
0
188
2
meteor 버전 때문에 실행이 안됩니다.
0
161
2
graghQL의 transaction 처리속도가 궁금합니다.
0
112
2
질문있습니다.
0
107
2
화면 구성 설명용 도구 이름
0
158
1
Meteor 실행 오류 문의 드립니다.
0
184
1
영호 좋아요 버튼이 콘솔에는 잘 찍히지만 화면에 렌더링 되지 않습니다.
0
129
2
영화목록 component 만들기 에서 질문이 있습니다.
0
209
3
"hello".toUpperCase() 가 안되는데요.
0
148
1
날짜 포매팅 관련 질문
0
134
1
삭제 후 홈으로 돌아가는 코드 관련 질문
0
137
2
Window 환경에서 meteor 설치하는 부분에 대해 실습환경 구축 부분에 추가내용이 없습니다.
0
221
3
가까운 부모-자식 간의 bind를 통해 값을 연결하는것에 대해서 여쭤볼게 있습니다.
0
369
1
섹션6 storeTodos에서 editTodo 함수
0
188
1
routify 부분 질문있습니다!
0
272
1
궁금한것이 있습니다!
0
190
1
강의 도중 궁금한 것이 있습니다!
0
213
1
질문이요
0
199
3
여기 투두를 이용해서요
0
213
0
스토어 개념..
0
330
2
깃헙에 있는 자료하고..
0
297
2
하이브리드 앱도 개발 할수 있나요?
0
1044
4





