<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue Test</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.10/dist/vue.js"></script>
</head>
<body>
<style>
.active {
background-color: red;
}
.text-danger{
font-size: 100px;
}
</style>
<div id = "app" :class="classObject">
안녕
</div>
<script>
const vm = new Vue({
el: '#app',
data: {
isActive : true,
isText : true,
classObject:{
'text-danger': true,
active : this.isActive
}
}
})
</script>
</body>
</html>

하지만 다음과 같이 isActive하는 블럭과 isActive를 참조하는 블럭이 다른경우 제대로 출력된다
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue Test</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.10/dist/vue.js"></script>
</head>
<body>
<style>
.active {
background-color: red;
}
.text-danger{
font-size: 100px;
}
</style>
<div id = "app" :class="classObject">
안녕
</div>
<script>
const vm = new Vue({
el: '#app',
data: {
isActive : true,
isText : true
},
computed: {
classObject(){
return{
'text-danger': true,
active : this.isActive
}
}
}
})
</script>
</body>
</html>
classObject:{
'text-danger': true,
active : [this.isActive]
}