Vue - 스타일!
vue 스타일
<style> 태그에 CSS를 정의하거나 요소에 직접 style 속성을 정의한다.
vue.js 에선 효율적인 CSS 적용을 위해 vue 스타일 객체를 사용한다.
vue 스타일 정의 후 vue 인스턴스 에 해당 스타일을 매칭시킨다.
CSS 에선 케밥표기법(
ex:font-szie)를 사용하지만vue 스타일에선 카멜표기법(ex:fontSize) 를 사용
v-bind:style
사실 vue 스타일 은 v-bind 를 통해 style 속성을 정의하는 것이다.
1 | <div id="example"> |
적용된 vue 스타일 은 자동으로 케밥표기법으로 변환되어 style 속성에 지정된다.
1 | <button id="a" style="background-color: aqua; border: 1px solid gray; text-align: center;"> |
v-bind:class
<style> 태그로 미리 class 에 대한 CSS 를 지정해 두고 v-bind 로 class 속성을 지정하는 방식
v-bind:class 깂으로 객체리터럴 혹은 배열리터럴을 전달할 수 있다.
객체리터럴의 경우 형식의 <className, boolean> 형식의 객체로 class 속성값을 지정한다.boolean 값이 true 라면 해당 class 이름을 사용하고 false 라면 사용하지 않는다.
1 | <style type="text/css"> |
배열리터럴로 전달할 경우 [className] 형식을 배열을 전달한다.
보통을 배열을 data 옵션에 담아 전달하는 방법을 많이 쓴다.
1 | <div id="app"> |
주의사항
클래스의 사용여부를 vue 인스턴스 생성 후 다시 설정하고 싶다면full name 으로 속성에 접근해서 값을 수정해야 한다.
1 | // full name 으로 접근해야한다 |
1 | // 아래처럼 별도의 참조변수를 사용하면 |
v-bind:style wth computed
data 옵션만을 사용해 style 속성을 지정하지 않아도 된다.computed 로도 가능하다.
1 | <div id="app"> |
v-bind:class wth computed
v-bind:class 역시 computed 속성을 사용하면 캐시효과로 인한 빠른 랜더링처리와
CSS 에 사용할 객체의 true, false 여부를 외부 데이터를 참조하여 처리 가능하다.
1 | var vm = new Vue({ |