본문 바로가기
Vue.js

Vue.js] 5. 클래스와 스타일 바인딩

by Fastlane 2024. 12. 24.
728x90
반응형

객체로 바인딩 하기

<div
  class="static"
  :class="{ active: isActive, 'text-danger': hasError }"
></div>

data() {
  return {
    isActive: true,
    hasError: false
  }
}

// 렌더링결과
<div class="static active"></div>

 

<div :class="classObject"></div>

data() {
  return {
    classObject: {
      active: true,
      'text-danger': false
    }
  }
}

//렌더링 결과
<div class="active"></div>

 

객체를 반환하는 계산된 속성에 바인딩할 수도 있습니다. 

<div :class="classObject"></div>

data() {
  return {
    isActive: true,
    error: null
  }
},
computed: {
  classObject() {
    return {
      active: this.isActive && !this.error,
      'text-danger': this.error && this.error.type === 'fatal'
    }
  }
}

배열로 바인딩 하기

<div :class="[activeClass, errorClass]"></div>

data() {
  return {
    activeClass: 'active',
    errorClass: 'text-danger'
  }
}

// 렌더링 결과
<div class="active text-danger"></div>

컴포넌트에서 사용하기

<!-- 자식 컴포넌트의 템플릿 -->
<p class="foo bar">안녕!</p>

<!-- 컴포넌트가 사용될 때 -->
<MyComponent class="baz boo" />

// 렌더링 결과
<p class="foo bar baz boo">안녕!</p>
728x90
반응형

'Vue.js' 카테고리의 다른 글

Vue.js] 7. 리스트 렌더링  (0) 2024.12.27
Vue.js] 6. 조건부 렌더링  (1) 2024.12.27
Vue.js] 4. 계산된 속성  (0) 2024.12.24
Vue.js] 3. 반응형 기초  (0) 2024.12.24
Vue.js] 2. Vue 앱 만들기, 템플릿 문법  (0) 2024.12.24

댓글