Vue

Vue_6 디렉티브

99duuk 2024. 9. 5. 11:12

Vue.js 자주 사용하는 디렉티브 정리


1. v-bind: 동적 속성 바인딩

**v-bind**는 HTML 요소의 속성(예: class, src, href)에 Vue.js의 데이터를 바인딩하여 동적으로 값을 설정할 때 사용됨.

<img v-bind:src="imageUrl" alt="Dynamic Image">
<!-- 축약형 -->
<img :src="imageUrl" alt="Dynamic Image">

 


2. v-if, v-else-if, v-else: 조건부 렌더링

**v-if**는 특정 조건에 따라 요소를 렌더링함. **v-else-if**와 **v-else**를 함께 사용해 복잡한 조건부 렌더링도 가능함.

<p v-if="isAdmin">Admin View</p>
<p v-else-if="isUser">User View</p>
<p v-else>Guest View</p>

 


3. v-show: 조건부 표시

**v-show**는 요소를 조건에 따라 표시하거나 숨기며, 요소가 DOM에서 제거되지 않고 **display: none**으로만 숨겨짐.

<p v-show="isVisible">This text is visible.</p>

 


4. v-for: 리스트 렌더링

**v-for**는 배열 또는 객체를 반복하며 DOM 요소를 렌더링할 때 사용됨. key 속성은 Vue가 각 항목을 구분하여 성능을 최적화할 수 있도록 도와줌.

<ul>
  <li v-for="item in items" :key="item.id">{{ item.name }}</li>
</ul>

 


5. v-model: 양방향 데이터 바인딩

**v-model**은 양방향 데이터 바인딩을 지원하며, 주로 폼 요소에서 사용됨. 사용자 입력이 Vue의 데이터와 자동으로 동기화됨.

<input v-model="message" placeholder="Type something">
<p>{{ message }}</p>

6. v-on: 이벤트 처리

**v-on**은 DOM 이벤트(클릭, 입력, 키보드 이벤트 등)를 처리할 때 사용됨. 축약형으로 **@**를 사용할 수 있음.

<button v-on:click="submitForm">Submit</button>
<!-- 축약형 -->
<button @click="submitForm">Submit</button>

7. v-pre: 템플릿 해석 생략

**v-pre**는 Vue가 해당 요소의 템플릿 구문을 해석하지 않고 그대로 출력하도록 함. 성능 최적화를 위해 필요하지 않은 요소의 해석을 생략할 수 있음.

<div v-pre>{{ rawMustacheSyntax }}</div>

8. v-cloak: 초기 렌더링 시 숨기기

**v-cloak**은 Vue 인스턴스가 마운트될 때까지 요소를 숨김. 보통 CSS와 함께 사용하여 초기 렌더링 시 깜빡임을 방지함.

<style>
  [v-cloak] {
    display: none;
  }
</style>

<div v-cloak>{{ message }}</div>

9. v-once: 한 번만 렌더링

**v-once**는 해당 요소를 한 번만 렌더링하고, 이후에는 데이터 변경에 반응하지 않음. 정적 콘텐츠에 사용하면 성능 최적화에 도움이 됨.

<p v-once>{{ message }}</p>

10. v-html: HTML 콘텐츠 삽입

**v-html**은 해당 요소에 HTML 콘텐츠를 직접 삽입함. **XSS(교차 사이트 스크립팅)**에 주의하여 사용해야 함.

<div v-html="htmlContent"></div>

 


 

11. v-text: 텍스트 콘텐츠 삽입

**v-text**는 Mustache({{ }}) 구문과 유사하게 텍스트 콘텐츠를 삽입함. 좀 더 명시적으로 사용할 수 있음.

<span v-text="message"></span>

 

'Vue' 카테고리의 다른 글

Vue_8 메서드  (0) 2024.09.05
Vue_7 생애주기 훅  (0) 2024.09.05
Vue_5 (Vuex 인증 모듈 및 App.vue 사용)  (0) 2024.09.04
Vue_4 (v-if vs v-show)  (1) 2024.09.04
Vue_3 (Vue Query)  (0) 2024.09.04