-
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