Input + Output = True
vue 3 - v-if, v-show ๋ณธ๋ฌธ
๐ vue 3 - v-if, v-show
composition API๋ฅผ ๊ธฐ์ค์ผ๋ก ํฉ๋๋ค
โ v-if
v-if, v-else-if, v-else๋ฅผ ํตํด ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ด ๊ฐ๋ฅํ๋ฉฐ ๋๋ ํฐ๋ธ ๋ณ๋ก ํ์ ๋ธ๋ญ์ด๋ฉด์ ์ธ์ ํด์ผ ํ๋ค
<div v-if="text === 'A'">
A
</div>
<div v-else-if="text === 'B'">
B
</div>
<div v-else-if="text === 'C'">
C
</div>
<div v-else>
A/B/C ๋ชจ๋ ์๋
</div>
const text = ref("D")
// ์๋์ ๊ฐ์ด ๋ ๋๋ง๋๋ค
<div> A/B/C ๋ชจ๋ ์๋ </div>
โ v-show
์๋ฆฌ๋จผํธ๋ฅผ ์กฐ๊ฑด๋ถ๋ก ํ์ํ๋ ๋ค๋ฅธ ์ต์ ์ด๋ฉฐ ์ฌ์ฉ๋ฒ์ v-if์ ๋์ฒด๋ก ๋์ผํ๋ค
<div v-show="show">v-show!</div>
const show = ref(false)
// ์๋์ ๊ฐ์ด ๋๋๋ง๋๋ค
<div style="display: none;">v-show!</div>
v-show์ ์๋ฆฌ๋จผํธ๋ ํญ์ ๋ ๋๋ง ๋๋ฉด์ DOM์ ๋จ์ ์๊ณ display CSS ์์ฑ์ผ๋ก ์ ํํ๋ค
โ v-if vs v-show
v-if
v-if๋ ์ค์ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ผ๋ก ์ฌ์ฉํ๋ค
์กฐ๊ฑด์ ๋ง๋ ๊ฒฝ์ฐ์๋ง ์๋ฆฌ๋จผํธ๋ฅผ ๋ ๋๋งํ๋ฉฐ ์ด๊ธฐ ์กฐ๊ฑด์ด false๋ผ๋ฉด ์๋ฌด ์์
๋ ์ํํ์ง ์๋๋ค
์ฆ, ์กฐ๊ฑด์ด true๊ฐ ๋ ๋๊น์ง ๋ ๋๋ง๋์ง ์๋๋ค
v-show
์ด์ ๋นํด v-show๋ ๋ฐฉ์์ด ํจ์ฌ ๊ฐ๋จํ๋ค
์๋ฆฌ๋จผํธ๋ CSS์ display ์์ฑ ๊ธฐ๋ฐ์ผ๋ก ์ ํ๋๋ฉฐ ์ด๊ธฐ ์กฐ๊ฑด๊ณผ ๊ด๊ณ์์ด ํญ์ ๋ ๋๋ง๋๋ค
์ฆ, ์๋ฆฌ๋จผํธ๋ ํญ์ ๋ ๋๋ง๋๋ฉฐ css๋ก ์ ์ดํ๋ค
Q. ์ด๋ค ์ํฉ์์ ์ด๋ค ๊ฒ์ ์ฌ์ฉํ ๊น?
์ผ๋ฐ์ ์ผ๋ก v-if๋ ์ ํ ๋น์ฉ์ด ๋ ๋๊ณ , v-show๋ ์ด๊ธฐ ๋ ๋๋ง ๋น์ฉ์ด ๋ ๋๋ค
๋ฐ๋ผ์ ์์ฃผ ์ ํํด์ผ ํ๋ ๊ฒฝ์ฐ(ex- Toggle) v-show๋ฅผ ์ฌ์ฉํ๊ณ ,
์คํ ์ค์ ์กฐ๊ฑด์ด ๋ณ๊ฒฝ๋์ง ์๋ ๊ฒฝ์ฐ v-if๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฑ๋ฅ๋ฉด์์ ํจ์จ์ ์ด๋ค
https://v3-docs.vuejs-korea.org/guide/essentials/conditional.html
์กฐ๊ฑด๋ถ ๋ ๋๋ง | Vue.js
v3-docs.vuejs-korea.org
'๐จFrontEnd > Vue' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
vue 3 - ์ด๋ฒคํธ ํธ๋ค๋ง (1) | 2023.07.16 |
---|---|
vue 3 - v-for ๋ฐ๋ณต๋ฌธ (0) | 2023.07.12 |
vue 3 - class & style (0) | 2023.07.11 |
vue 3 - computed (computed vs method) (0) | 2023.07.09 |
vue 3 ๋ฐ์ํ - reactive and ref (0) | 2023.07.05 |