조건문과 반복문
v-if로 조건에 따라 렌더링하고 v-for로 목록을 렌더링합니다.
조건문과 반복문은(는) CoddyKit의 무료 Vue Academy 강의입니다. 이것은 3개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Vue Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Vue Academy 강의에는 총 3개의 강의가 포함되어 있습니다.
조건부 렌더링
Vue에서는 데이터를 기준으로 UI의 일부를 표시하거나 숨길 수 있습니다.
- v-if는 조건에 따라 요소를 렌더링합니다
- v-else-if와 v-else는 조건을 연결합니다
- v-show는 표시 여부를 전환합니다
v-if
v-if 디렉티브는 표현식이 참으로 평가될 때만 요소를 렌더링합니다.
<p v-if="isLoggedIn">Welcome back!</p>
<p v-if="cart.length === 0">Your cart is empty.</p>v-else-if와 v-else
v-else-if와 v-else로 조건을 연결합니다. 두 디렉티브는 반드시 v-if 바로 뒤에 와야 합니다.
<p v-if="score >= 90">Grade: A</p>
<p v-else-if="score >= 80">Grade: B</p>
<p v-else-if="score >= 70">Grade: C</p>
<p v-else>Grade: F</p>v-show
v-show는 요소를 항상 렌더링하고 CSS display 속성만 전환합니다.
<div v-show="isVisible">
This div stays in the DOM,
only display:none toggles.
</div>v-if와 v-show 비교
핵심적인 차이는 다음과 같습니다.
- v-if는 DOM에서 요소를 완전히 추가하거나 제거합니다
- v-show는 요소를 DOM에 유지하고 display만 전환합니다
자주 전환되는 항목에는 v-show를 사용하세요. 조건이 거의 바뀌지 않거나 요소를 렌더링하는 비용이 클 때는 v-if를 사용하세요.
배열에 v-for 사용
v-for 디렉티브는 배열을 순회해 목록을 렌더링합니다.
<ul>
<li v-for="fruit in fruits">{{ fruit }}</li>
</ul>
<!-- data: fruits = ["Apple", "Banana", "Cherry"] -->인덱스와 함께 사용하는 v-for
v-for를 사용하면 각 항목의 인덱스도 가져올 수 있습니다.
<ul>
<li v-for="(item, index) in items">
{{ index }}: {{ item }}
</li>
</ul>:key의 중요성
v-for를 사용할 때는 항상 고유한 :key를 지정하세요.
- Vue가 각 노드의 정체성을 추적하는 데 도움이 됩니다
- 효율적이고 올바른 DOM 업데이트를 가능하게 합니다
- 항목의 순서가 바뀔 때는 배열 인덱스가 아니라 안정적인 고유 ID를 사용하세요
<li v-for="user in users" :key="user.id">
{{ user.name }}
</li>:key가 중요한 이유
올바른 키가 없으면 목록이 바뀔 때 Vue가 잘못된 요소를 재사용할 수 있습니다.
- 양식 입력 요소가 잘못된 값을 유지할 수 있습니다
- 애니메이션이 이상하게 동작할 수 있습니다
- 상태가 잘못된 행에 연결될 수 있습니다
안정적인 고유 키를 사용하면 이러한 버그를 방지할 수 있습니다.
객체에 v-for 사용
v-for는 객체의 속성 값을 순회할 수 있으며, 선택적으로 키와 인덱스도 사용할 수 있습니다.
<li v-for="(value, key) in userProfile" :key="key">
{{ key }}: {{ value }}
</li>
<!-- userProfile = { name: "Ada", age: 36 } -->v-for와 조건문 결합
목록을 필터링할 때는 v-for와 같은 요소에 v-if를 작성하기보다 계산 속성을 사용하는 것이 좋습니다.
<!-- Filter in a computed, then loop -->
<li v-for="task in activeTasks" :key="task.id">
{{ task.title }}
</li>
<!-- activeTasks is a computed that
returns only unfinished tasks -->빠른 확인
조건문과 반복문을 제대로 이해했는지 테스트해 보세요.
복습: 조건문과 반복문
목록 렌더링과 조건부 렌더링을 배웠습니다.
- v-if / v-else-if / v-else로 조건부 렌더링을 합니다
- v-show는 표시 여부만 전환합니다
- v-for는 배열과 객체를 순회합니다
- 항상 고유한 :key를 추가하세요
- 계산 속성으로 목록을 필터링하세요
다음에는 속성과 클래스 바인딩을 살펴봅니다.
자주 묻는 질문
“조건문과 반복문” 강의는 무료인가요?
네 — “조건문과 반복문” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Vue Academy 강의 전체를 잠금 해제할 수 있습니다. Vue Academy 강의에는 총 3개의 강의가 포함되어 있습니다.
“조건문과 반복문”에서 뭘 배우나요?
v-if로 조건에 따라 렌더링하고 v-for로 목록을 렌더링합니다. 브라우저에서 직접 실행하는 실습 코드로 Vue Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Vue Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Vue Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 2번째 강의입니다.
“조건문과 반복문” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Vue Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Vue Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 보간과 디렉티브
- 조건문과 반복문
- 속성과 Class 바인딩