https://ko.vuejs.org/guide/built-ins/transition
Vue.js
Vue.js - The Progressive JavaScript Framework
vuejs.org
๋ค๋ธ๋ฐ๋ฅผ ๋ง๋๋๋ฐ ๋ฐ์ํ์ผ๋ก ์ ์์ค์ด๋ผ
๋ชจ๋ฐ์ผ ์ฌ์ด์ฆ์์๋ ์ค๋ฅธ์ชฝ ํ๋ฒ๊ฑฐ ์์ด์ฝ์ ํด๋ฆญํ๋ฉด
๋ฉ๋ด๊ฐ ์๋๋ก ํผ์ณ์ง๊ธธ ๋ฐ๋ฌ๋ค.


vue์์๋ ์ด๋ป๊ฒ ๋ง๋ค๋ฉด ๋ ์ง ์ฐพ์๋ณด๋ค๊ฐ ๋ฐ๊ฒฌํ
Transition ์ปดํฌ๋ํธ
๋๋ ์ด๋ ๊ฒ ๋ง๋ค์๋ค.
์ผ๋จ ๋ชจ๋ฐ์ผ ๋ฉ๋ด๋
์์ด์ฝ์ ํด๋ฆญ ์์ ๋ณด์ฌ์ผ ํ๋ฏ๋ก
mobileMenuVisible์ ๋ณ์๋ฅผ ๋ง๋ค์ด์ ๊ธฐ๋ณธ ๊ฐ์ false๋ก ์คฌ๋ค. ( ์ฒ์์๋ ๋ณด์ด์ง ์๊ฒ )
๊ทธ๋ฆฌ๊ณ ํจ์๋ฅผ ํ๋ ๋ง๋ ๋ค.
๋ฒํผ์ ํด๋ฆญํ๋ฉด false -> true๋ก ๋ง๋ค์ด์ฃผ๊ณ ๋ง์ฝ ๋ค์ ํด๋ฆญํ๋ฉด ๋ฐ๋๋ก false๋ก ๋ง๋ค์ด์ค์ผ ํ๋ฏ๋ก
toggleMobileMenu๋ฅผ ๋ง๋ค์ด์ ํ์ฌ์ mobileMenuVisible์ ๋ฐ๋ ๊ฐ์ผ๋ก ๋๋ ค์ค๋ค.
๊ทธ๋ฆฌ๊ณ return ์ ์ฌ์ฉํด์ ๋ง๋ ๋ณ์์ ํจ์๋ฅผ ์ ๋ฌํ๋ค.
์์ด์ฝ์ ํด๋ฆญํ๋ฉด toggleMobielMenu ํจ์๋ฅผ ์คํํ๋ค.
์์ ํธ๋์ง์ ์ฌ์ฉ๋ฒ์ ๋ณด๋ฉด
<Transition>์ ๋นํธ์ธ ์ปดํฌ๋ํธ์ด๋ฏ๋ก ๋ฑ๋กํ์ง ์๊ณ ๋ ์ปดํฌ๋ํธ์ ํ ํ๋ฆฟ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ ์ฌ๋กฏ์ ํตํด ์ ๋ฌ๋ ์๋ฆฌ๋จผํธ ๋๋ ์ปดํฌ๋ํธ์ ์ง์ (enter) ๋ฐ ์ง์ถ(leave) ์ ๋๋ฉ์ด์ ์ ์ ์ฉํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํด๋น ์ ๋๋ฉ์ด์ ์ ๋ค์ ์ค ํ๋์ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ฉด ๋ฐ์ํฉ๋๋ค:
- v-if๋ฅผ ํตํ ์กฐ๊ฑด๋ถ ๋ ๋๋ง
- v-show๋ฅผ ํตํ ์กฐ๊ฑด๋ถ ํ์
- ์คํ์ ์๋ฆฌ๋จผํธ <component>๋ฅผ ํตํด ์ ํ๋๋ ๋์ ์ปดํฌ๋ํธ
- key๋ผ๋ ํน์ํ ์์ฑ ๊ฐ ๋ณ๊ฒฝ
ํด๋น ํธ๋์ง์ ์ปดํฌ๋ํธ๋ ๋ฐ๋ก import ํ์ง ์์๋ ์ฌ์ฉ๊ฐ๋ฅํ๋ค๊ณ ์ ํ์๋ค.
๊ทธ๋์ ๋ฐ๋ก ํธ๋์ง์ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ค.
๋ํ v-if๋ก ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ด ๊ฐ๋ฅํ์ฌ ๋ฉ๋ด๋ค์ ์์์ ๋ง๋ mobileMenuVisible์ด true์ผ ๋๋ง ๋ณด์ฌ์ง๊ฒํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ ํ ๋ฉ๋ด๋ฅผ ํด๋ฆญํ๋ฉด ํด๋น ํ์ด์ง๋ก ์ด๋ํ๋ฉด์ ๋ค์ ์๋ณด์ด๊ฒ ๋ง๋ค๊ธฐ ์ํด
toggleMobielMenu๋ฅผ ์คํํ๋ค.

๊ทธ๋ฆฌ๊ณ ํธ๋์ง์ ์ปดํฌ๋ํธ์ ์ด๋ฆ์ ์ง์ ํด์ style์ ์ค ์ ์๋ค.
'FRONTEND > Vue' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Vue3 + vite + tailwindCSS] ํธ์ํฐ ํด๋ก ์ฝ๋ฉ - ๋ก๊ทธ์ธ ํ์ด์ง (1) | 2024.03.15 |
|---|---|
| [Vue3 + vite + tailwindCSS] ํธ์ํฐ ํด๋ก ์ฝ๋ฉ - ํ์๊ฐ์ ํ์ด์ง (1) | 2024.03.15 |
| [Vue] props๋ก ๋ฐ์ดํฐ ์ ๋ฌํ๊ธฐ (0) | 2024.02.22 |
| [Vue+Vite] vite-svg-loader ์ฌ์ฉํ๊ธฐ (0) | 2024.02.22 |
| [Vue+Vite] Vue+Vite ๋ผ์ฐํฐ ์ฌ์ฉํ๊ธฐ (0) | 2024.02.22 |