vue3 로 코드를 작성할 때, 체크박스를 원래의 기능과 다르게 작성하는 법
Vue 3에서 체크박스의 기본 동작을 변경하려면, v-model 디렉티브와 함께 사용하는 computed 속성을 사용하여 체크박스의 값(checked)을 수동으로 조작할 수 있다.
<template>
<div>
<input type="checkbox" v-model="myCheckbox">
</div>
</template>
<script>
import { computed } from 'vue';
export default {
name: 'MyComponent',
setup() {
const myCheckbox = computed({
get() {
// 실제값의 반대값을 반환
return !checkboxValue;
},
set(newValue) {
// 새로운 로직을 작성
// 예를 들면, 무조건 ture를 반환
checkboxValue = true;
},
});
return {
myCheckbox,
};
},
};
</script>
이 코드는 체크박스의 값이 항상 true로 설정된다. 만약 체크박스의 값이 바뀌면 computed 속성에서 정의한 set 메소드가 호출되며, newValue 매개변수로 변경된 값을 전달한다. 이 메소드에서는 원하는 동작을 수행할 수 있다.
위의 코드에서는 myCheckbox computed 속성의 get 메소드에서 체크박스 값의 반대 값을 반환한다. 이렇게 함으로써, 체크박스를 클릭하면 실제로 체크박스가 체크되지 않고, computed 속성이 반환하는 값이 반영된다. 이러한 방식으로 체크박스의 동작을 커스터마이징할 수 있다.