ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Vue.js 문법 - 클래스와 스타일 바인딩
    Vue/Vue.js 문법 2021. 7. 13. 20:33

     

    클래스 바인딩

     

    <template>
      <h1
        :class="{ active: isActive }"
        @click="activate">
        Hello?!({{ isActive }})
      </h1>
    </template>
    
    <script>
    export default {
      data() {
        return {
          isActive: false
        }
      },
      methods: {
        activate() {
          this.isActive = true
        }
      }
    }
    </script>
    
    <style scoped>
      .active {
        color: red;
        font-weight: bold;
      }
    </style>

     

    코드 이해하기

    - <h1>태그 (Hello?!)를 클릭하면 isActive(기본값 false)가 true로 변경

    - class 속성의 값(active)이 데이터이므로 v-bind: 디렉티브(약어)를 사용 :class="{ active: isActive }"

    - { active: isActive }는 Key와 Value 형태, isActive는 (true, false)값을 가지고 있음

    - active: true 라면 active 클래스를 추가, active: false 라면 클래스를 추가하지 않음

    - 위의 개념이 클래스 바인딩(Class Binding)

     


     

    인라인 스타일 바인딩

     

    - :style의 객체 구문은 매우 간단

    - JavaScript 객체라는 점을 제외하면 CSS와 거의 비슷

    - CSS 속성 이름에는 카멜 케이스(camelCase) 또는 케밥 케이스(kebab-case, 케밥 케이스와 함께 따옴표 사용) 작성

     

    <!-- App.vue -->
    <!-- 객체 데이터에서 속성의 이름과 데이터의 이름이 동일하면 단축 가능하다-->
    <!-- color: color => color --> 
    <!-- fontSize: fontSize => fontSize --> 
    
    <template>
      <h1
        :style="{
          color: color,  
          fontSize: fontSize
        }"
        @click="changeStyle">
        Hello?!
      </h1>
    </template>
    
    <script>
    export default {
      data() {
        return {
          color: 'orange',
          fontSize: '30px'
        }
      },
      methods: {
        changeStyle() {
          this.color = 'red';
        }
      }
    }
    </script>

     

    코드 이해하기

    - :style="{ color: color, fontSize: fontSize }" 인라인 스타일 바인딩

    - <h1>태그 (Hello?!)를 클릭하면, 메소드 changeStyle() 동작, 글자 색상이 red로 변경

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

    Vue.js 문법 - 리스트 렌더링  (0) 2021.07.14
    Vue-js 문법 - 조건부 렌더링  (0) 2021.07.14
    Vue.js 문법 - Watch  (0) 2021.07.13
    Vue.js 문법 - Getter, Setter  (0) 2021.07.13
    Vue.js 문법 - Computed  (0) 2021.07.12

    댓글

Designed by Tistory.