728x90
vue 2와 vue 3 버전에 따라
portal이 teleport으로 변경되면서, 사용 방법도 달라진다.
chatGPT가 알려주나, 이게 과연 맞는 방법인지확인하고자 공식문서를 토대로 알아가보자
보통 두 기능은 전체 화면을 모달로 제작할 때 사용한다.
중첩된 DOM 구조를 벗어날 수 있는 깔끔한 방법을 제공한다.
사용방법
1. portal
- install Package :
npm install --save portal-vue@next
# or with yarn
yarn add portal-vue@next
- add it to application
import PortalVue from 'portal-vue'
사용방법
부모 (사용 문법 pug/jade)
portal-target(name='destination')
자식
<portal to='destination'>
<vue-manage-modal v-if='isShowManageModal' v-bind:prop-params='propParams' :key='isShowManageModal'
@close='isShowManageModal = false' @termination-modal='terminationModal'
@search='search'></vue-manage-modal> 예시
</portal>
공식 portal 문서 : https://portal-vue.linusb.org/guide/getting-started.html#what-is-portalvue
2. teleport
vue 3의 경우 내장 함수이기에 따로 include할 필요 x
사용 방법
<Teleport to="body">
<div v-if="open" class="modal">
<p>모달에서 인사합니다!</p>
<button @click="open = false">닫기</button>
</div>
</Teleport>
위와같이 사용하면되나, 구조를 나눠서 작성할 경우
부모 html
<div id ='modal-container'></div>
자식 html
<Teleport to="#modal-container">
<vue-phishing-detail v-if='isShowDetailModal' v-bind:prop-params='propParams' :key='isShowDetailModal'
@close='isShowDetailModal = false'
@termination-modal='terminationModal'></vue-phishing-detail>
</Teleport>
이런식으로 사용하면 된다.
공식문서 텔레포트 URL : https://ko.vuejs.org/guide/built-ins/teleport
728x90
'웹 & 앱 꿀 TIP' 카테고리의 다른 글
| [JS] 특정 문자 (ex: 괄호) 안 내용 가지고 오는 방법 feat.정규식 (2) | 2025.08.26 |
|---|---|
| SQLD 내용 시험 볼 때 보았던 내용 총 정리 (신유형) (0) | 2024.09.14 |
| 제 54회 SQLD 후기 (1) | 2024.08.25 |
| [git] remote 안될 때 (0) | 2024.01.18 |
| [MYSQL] 사용하고 싶은 alias 가 조건 명령어 일 때 (2) | 2023.12.06 |