๐ ๋ชฉ์ฐจ
- Introduction
- What is teleport?
- Usage
- Conclusion
- Reference
๐ Introduction
์๋ ํ์ธ์. ์ด๋ฒ์๋ teleport์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ํด๋น ์ฝ๋๋ ์ฌ๊ธฐ์ ํ์ธํ ์ ์์ต๋๋ค.
๐ What is teleport?
teleport๋ vue2์์ vue-teleport์ ๋๊ฐ์ต๋๋ค. ๋ฌธ์์์๋ ์ฃผ๋ก modal์ ์ฌ์ฉํ ๋ ์ด๋ค๊ณ ํ๋ค์.
<template>
<!-- ok -->
<teleport to="#some-id" />
<teleport to=".some-class" />
<teleport to="[data-teleport]" />
<!-- Wrong -->
<teleport to="h1" />
<teleport to="some-string" />
</template>
to๋ฅผ ์ด์ฉํด์ ๋ณด๋ผ์ ์๋๋ฐ ๊ทธ๋ฅ ์ผ๋ฐ์ ์ธ string์ผ๋ก๋ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์์ด๋๋ ํด๋์ค๋ฅผ ์ฌ์ฉํด์ ์ฌ์ฉํ๋ผ๊ณ ํ๋ค์. ๋น์ฐํ ์๊ธฐ์ง๋ง ์ํ๋ ๊ณณ์ผ๋ก ์ ๋๋ก ๋ณด๋ผ์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๐ Usage
// App.js
<template>
<div id="teleport"></div>
<MyDiv01 />
<MyDiv02 />
</template>
<script>
import MyDiv01 from './components/MyDiv01';
import MyDiv02 from './components/MyDiv02';
export default {
name: 'App',
components: {
MyDiv01,
MyDiv02
}
}
</script>
<template>
<teleport to="#teleport">
<div>MyDiv01</div>
</teleport>
</template>
<template>
<teleport to="#teleport">
<div>MyDiv02</div>
</teleport>
</template>
์ด์ div(#teleport)์์ผ๋ก ๋ค์ด๊ฐ์ง๋๋ค.
๐ Conclusion
vue3์์ teleport๋ฅผ ์ง์ํด์ค๋ค๋ ์ ๋ง ์ข์ ์์์ด์๋๊ฑฐ ๊ฐ์์. ๊ธฐ์กด์ vue์์ ํ ๋ ํฌํธ๋ฅผ ์ด์ฉํ๊ธฐ ์ํด์๋ ๋ฐ๋ก lib๋ฅผ ์ค์นํด์ผํ๋๋ฐ ์ด์ ๊ทธ๋ฌ์ง ์์๋ ๋๋ค๋๊ฒ ๋๋ฌด ์ ์ด ๋ฉ๋๋ค. ๊ทธ๋ผ ๋ค์ ํฌ์คํ ์ ๊ธฐ๋ํด์ฃผ์ธ์!
๐ Reference
'Vue Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Vue2 ๋น๋ ํ์ ์ต์ ํ (0) | 2021.07.29 |
---|---|
Vue3 - v model (0) | 2020.11.08 |
Vue3 - Provide/Inject (0) | 2020.11.04 |
Vue3 - LifeCycle (0) | 2020.10.30 |
Vue3 - computed and watch (0) | 2020.10.28 |