프론트엔드 개발 · 기초
Vue.js에서 배열 데이터를 기반으로 여러 개의 요소를 반복적으로 렌더링할 때 `v-for` 디렉티브를 어떻게 사용하는지 설명해 주세요. 이때 `key` 속성의 중요성도 함께 언급해 주세요.
힌트 · `v-for='(item, index) in items'` 형태로 사용하며, `key`는 각 노드의 고유한 식별자로, DOM 재사용 및 성능 최적화에 필수적입니다.
v-forkey고유 ID재사용성능 최적화
모범답안
Vue.js에서 배열 데이터를 기반으로 여러 요소를 반복 렌더링할 때는 v-for 디렉티브를 사용합니다. 예를 들어 v-for="(item, index) in items" 와 같이 사용하면 items 배열의 각 요소에 대해 반복적으로 템플릿을 렌더링할 수 있습니다. item은 배열의 각 요소, index는 해당 요소의 인덱스를 나타냅니다.
여기서 중요한 것은 key 속성입니다. key는 Vue가 각 노드를 고유하게 식별하는 데 사용되는 속성으로, Vue는 key를 기반으로 DOM 요소를 재사용하고 업데이트할지 결정합니다. 만약 key가 없다면 Vue는 요소를 효율적으로 업데이트하지 못하고 불필요한 DOM 조작이 발생하여 성능 저하를 일으킬 수 있습니다. 따라서 v-for를 사용할 때는 각 요소의 고유한 ID를 key 속성에 할당하여 성능을 최적화하는 것이 중요합니다. 예를 들어 <li v-for="item in items" :key="item.id">{{ item.name }}</li> 와 같이 사용할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Vue.js / Nuxt 면접 질문
- Vue 애플리케이션의 가장 기본적인 단위인 Vue 인스턴스는 어떻게 생성하며, 주요 옵션(data, methods 등)은 무엇이 있는지 설명해 주세요.
- Vue.js에서 `v-bind`와 `v-model` 디렉티브는 각각 어떤 용도로 사용되며, 둘의 주요 차이점은 무엇인지 설명해 주세요.
- Vue.js에서 조건부 렌더링을 위해 사용되는 `v-if`와 `v-show` 디렉티브의 차이점을 설명하고, 각각 어떤 상황에 더 적합한지 예시를 들어 설명해 주세요.
- Vue.js에서 사용자 인터랙션(클릭, 입력 등)을 처리하기 위해 `v-on` 디렉티브를 어떻게 사용하는지 설명해 주세요. 이벤트 수식어(event modifiers)의 역할도 함께 설명해 주세요.
- Vue.js에서 컴포넌트 기반 개발의 이점은 무엇이며, 하나의 컴포넌트는 일반적으로 어떤 구조(template, script, style)로 이루어져 있는지 설명해 주세요.
- Vue 3 Composition API에서 'ref'와 'reactive'는 반응형 데이터를 생성하는 데 사용됩니다. 이 두 함수의 주요 차이점은 무엇이며, 각각 어떤 상황에서 사용하는 것이 더 적절한지 구체적인 예시와 함께 설명해주세요.