const getPostView = computed(()=>{
return `
<div style='background: red'>
Hello!
</div>
`;
});
우선 getPostView 라는 computed 된 getter을 만들어 <div> 스타일을 반환하는 하나의 반환자를 만든다. 여기서 getPostView 는 <div> 블럭을 반환하여 필요한 상황일 때 특정 블럭을 반환하는 식으로 구현할 수 있다.
<div data-v-0904fc8e=""></div>
<div data-v-0904fc8e="">
<div style="background: red">
Hello!
</div>
</div>
그래서 보통은 template 내에서 특정 태그에 조건을 넣고 조건이 만족되면 해당 태그가 전체적으로 출력되게 하는 방법을 사용할 수 있는데,
<div v-if='rf>10' style='background: red'>
Hello!
</div>
위와 같이 div 영역을 애초 처음부터 template 영역에 작성한 뒤, v-if 속성 태그를 사용해서 조건에 만족하는 경우에만 해당 div가 렌더링되도록 한다. template 영역 안에서 특정 조건을 만족할 때에만 렌더링되게 하고 싶은 태그의 v-if 에 상태 변수 및 조건 사항을 넣어 원하는 상황일 때만 렌더링되도록 할 수 있다.
<!--v-if-->
<div data-v-0904fc8e="" style="background: red;"> Hello! </div>
특히 v-if 는 조건이 만족할 때에만 dom 에 실시간으로 생성하는 것으로, 조건에 만족하지 않는 경우 Dom 자체가 사라진다.
이와 약간 다른 것으로 v-show가 있는데, v-show 는 dom 자체는 렌더링하지만 display 스타일 옵션을 통해 화면상에 렌더링할 것인지를 정의한다. 즉 Dom 자체는 구현된 상태로, 화면 상에 렌더링하는지를 결정한다.
<div data-v-0904fc8e="" style="background: red; display: none;"> Hello! </div>
위 코드와 같이 style 옵션 내에서 display가 none 으로 되어있는 것을 볼 수 있다.
아무튼 본론으로 돌아와서 v-if 외 v-else-if, v-else가 있는데
<div data-v-0904fc8e="">0 <button data-v-0904fc8e="">클릭</button><div data-v-0904fc8e="" style="background: green;"> Hello3 </div></div>
조건에 만족하는 div 영역만 렌더링되는 것을 확인할 수 있다.