vue3中的teleport(瞬移)组件

Posted web半晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue3中的teleport(瞬移)组件相关的知识,希望对你有一定的参考价值。


1、描述

teleport组件提供了一种干净的方法,让组件的html在父组件界面外的特定标签(很可能是body)下插入显示。说白了就是在这个组件里的元素不会嵌套在id = 'app的容器里显示,而是挂载在body标签上。


2、示例

2.1、父组件

2.1.1、html部分

<template>
	<h2>App</h2>
	<modal-button></modal-button>
</template>

2.1.2、typescript部分

import ModalButton from './ModalButton.vue'

export default 
	components: 
		ModalButton
	
	setup() 
		return 
	,


2.2、子组件

2.2.1、html部分

<template>
	<button @click="modalOpen = true">
		Open full screen modal! (With teleport!)
	</button>

	<teleport to="body">
		<div v-if="modalOpen" class="modal">
			<div>
				<button @click="modalOpen = false">Close</button>
			</div>
		</div>
	</teleport>
</template>

2.2.2、typescript部分

import  ref  from 'vue'
export default 
	name: 'modal-button',
	setup () 
		const modalOpen = ref(false)
		return 
			modalOpen
		
	


2.2.3、css部分

.modal 
	position: absolute;
	top: 0; right: 0; bottom: 0; left: 0;
	background-color: rgba(0,0,0,.5);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;


.modal div 
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background-color: white;
	width: 300px;
	height: 300px;
	padding: 5px;

以上是关于vue3中的teleport(瞬移)组件的主要内容,如果未能解决你的问题,请参考以下文章

Vue3内置组件Teleport

Vue3内置组件Teleport

Vue3中 内置组件 Teleport 详解

Vue3中 内置组件 Teleport 详解

Vue3中 内置组件 Teleport 详解

Teleport指定显示在什么dom层级中去使用Teleport自定义一个模态对话框的组件