Vue 팁: Vue 반응형 변수를 사용한 동적 CSS

3123 단어 vuewebdevjavascript
Vue를 사용하는 경우 코드의 논리를 기반으로 태그에 다른 클래스를 적용해야 하는 데 익숙할 수 있습니다. 특정 조건에 따라 요소 클래스를 반응적으로 업데이트해야 할 수 있기 때문입니다. 예를 들어 변수check가 true로 설정된 경우 div가 빨간색으로 표시되기를 원하지만 그렇지 않으면 파란색으로 표시되어야 한다고 가정합니다. 이러한 사용 사례의 경우 다음 코드를 보는 것이 일반적입니다.

<div :class="check === true ? 'red' : 'blue'">
    Hello World
</div>


그러나 실제로 Vue 3를 사용하여 CSS에 바로 Vue 반응 변수를 넣을 수 있다는 사실을 알고 계셨습니까? 구성 API( read more: difference between composition and options API )를 사용해야 하지만 일단 사용하면 아래 코드를 피하고 CSS에 바로 변수를 넣을 수 있습니다.

간단한 예를 살펴보겠습니다. Vue 템플릿에 다음 스크립트가 있다고 가정합니다.

<script setup>
import { ref } from 'vue'

const check = true;
let color = ref('#ff0000');

if(check == true) {
  color.value = '#0000ff';
}
</script>
<template>
  <input value="Hello World" />
</template>


간단하죠? checktrue이면 color 변수는 '#0000ff'입니다. 그렇지 않으면 '#ff0000'입니다. CSS에서 Vue 3을 사용하면 이제 color를 사용하여 v-bind를 직접 참조할 수 있습니다.

<style>
  input {
    color: v-bind(color)
  }
</style>


이제 color가 반응적으로 업데이트되면 입력의 colorcolor 변수가 설정된 값으로 변경됩니다. 즉, HTML 태그에서 어색한 논리를 피할 수 있고 CSS에서 바로 Javascript 변수를 사용할 수 있습니다. 정말 멋진 일이라고 생각합니다.

좋은 웹페이지 즐겨찾기