-
Vue-js 문법 - 조건부 렌더링Vue/Vue.js 문법 2021. 7. 14. 15:11
v-if
- v-if 디렉티브는 조건에 따라 블록을 렌더링할 때 사용
- 블록은 디렉티브의 표현식이 true 값을 반환할 때만 렌더링
<h1 v-if="awesome">Vue is awesome!</h1> <!-- v-else와 함께 “else 블록”을 추가하는 것도 가능 --> <h1 v-if="awesome">Vue is awesome!</h1> <h1 v-else>Oh no 😢</h1>
예제
<!-- App.vue --> <template> <button @click="handler"> Click me! </button> <h1 v-if="isShow"> Hello?! </h1> <h1 v-else> Good~ </h1> </template> <script> export default { data() { return { isShow: true } }, methods: { handler() { this.isShow = !this.isShow } } } </script>
코드 이해하기
- 처음에는 <Button> 태그 (Click me!)와 <h1> 태그 (Hello?!)가 화면에 출력
- 버튼 (Click me!)을 누르면 메소드 handler()가 동작
- hendler() 메소드는 isShow 데이터가 true면 false, false면 true로 변경
- isShow가 false 이므로 (Hello?!)는 (Good~)으로 변경
결론: 버튼을 누르면 (Hello?!)일때는 (Good~), (Good~)일때는 (Hello?!)로 변경됨
v-show
- v-if 디렉티브와 거의 동일한 디렉티브
- 차이점은 v-show 를 쓴 엘리먼트의 경우, 항상 렌더링 되어 DOM에 남아있음
- v-show 는 단순히 엘리먼트의 CSS display: none 속성만을 전환
- v-show 는 <template> 엘리먼트를 지원하지 않으며, v-else 와 함께 사용이 불가능함
자주 전환해야 한다면 v-show를 사용하는 게 좋고, 런타임 시 조건이 변경되지 않는다면 v-if를 사용하는 게 더 낫다
'Vue > Vue.js 문법' 카테고리의 다른 글
Vue.js 문법 - 이벤트 핸들링 (0) 2021.07.14 Vue.js 문법 - 리스트 렌더링 (0) 2021.07.14 Vue.js 문법 - 클래스와 스타일 바인딩 (0) 2021.07.13 Vue.js 문법 - Watch (0) 2021.07.13 Vue.js 문법 - Getter, Setter (0) 2021.07.13