Vue ๊ฟํ ๐ฏ
์์ํ๋ฉฐ
Vue ํ๋ ์์ํฌ์์ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ์ํ ๋๋ ํฐ๋ธ๋ v-if์ v-show๊ฐ ์์ต๋๋ค. ์ด๋ฒ์๋ ๋ ๊ฐ์ง ๋๋ ํฐ๋ธ์ ์ฐจ์ด์ ์ ๋ํด ์์๋ด
์๋ค.
v-if VS v-show
v-if
๋๋ ํฐ๋ธ์ ๊ฐ์ด true์ด๋ฉด ๋ ๋๋ง ๋๊ณ false์ด๋ฉด ๋ ๋๋ง ๋์ง ์์ต๋๋ค. 2.1.0 ๋ฒ์ ๋ถํฐ v-else-if ๋๋ ํฐ๋ธ๋ ์ถ๊ฐ๋์ด ๊ธฐ์กด์ if๋ฌธ์ ์ฌ์ฉํ๋๋๋ก ๋๋ ํฐ๋ธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
<template>
<div>
<span v-if="true">v-if</span>
<span v-else-if="true">v-else-if</span>
<span v-else>v-else</span>
</div>
</template>v-show
v-if์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋๋ ํฐ๋ธ ๊ฐ์ด true์ผ ๋ ๋ ๋๋ง ๋ฉ๋๋ค.
<template>
<div>
<span v-show="true">๋ณด์ด๊ธฐ</span>
</div>
</template>nextTick
Vue์์ nextTick์ผ๋ก ๊ฐ์ผ ๋ค callback์ ํตํด DOM์ ์กฐ์ํ ์ ์๋ค. ์ด๋ ๊ฒ ๋๋ฉด ๋ฐ์ดํฐ ๊ฐฑ์ ํ UI๊น์ง ๋ ๋๋งํ ํ์ nextTick ํจ์๋ฅผ ์ต์ข
์ ์ผ๋ก ์ํํ๋ค. ๋ฐ์ดํฐ๊ฐ ์
๋ฐ์ดํธ๋๊ณ ๋ ์งํ,
UI๊ฐ ๊ฐฑ์ ๋ ๋ DOM์ ์ฐพ์ง ๋ชปํ๋ ํ์์ ๊ฐ์ ํ๊ณ ์ ์ฌ์ฉํ๋ค.
ex.
// ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
vm.msg = 'Hello'
// ์์ง DOM ์
๋ฐ์ดํธ๊ฐ ๋์ง ์์์ต๋๋ค.
Vue.nextTick(function () {
// DOM์ด ์
๋ฐ์ดํธ ๋์์ต๋๋ค.
});์ฐจ์ด์
๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ v-if๋ ์ค์ ์ปดํฌ๋ํธ๊ฐ ์ ๊ฑฐ๋๊ณ ์์ฑ๋๋ ๋ฐ๋ฉด v-show๋ css์ display ์์ฑ๋ง ๋ณ๊ฒฝ๋๋ค๋ ์ ์
๋๋ค.
๋ง์น๋ฉฐ
Refer
https://kr.vuejs.org/v2/guide/conditional.html
https://vuejs-kr.github.io/jekyll/update/2017/01/19/vuejs-nexttick-example/
https://kr.vuejs.org/v2/api/#Vue-nextTick
https://doozi316.github.io/vuejs/2020/08/10/Vue4/