Vue.js 폼과 입력 바인딩
폼은 웹 애플리케이션의 핵심 부분으로, 사용자가 데이터를 입력하고 제출할 수 있도록 합니다. Vue.js는 사용자 입력을 관리하고 애플리케이션 데이터와 동기화하는 직관적인 방법을 제공하여 폼과 입력 바인딩을 처리하는 것을 간소화합니다. 이 문서에서는 Vue.js에서 폼과 입력 바인딩을 사용하는 기본 사항을 안내합니다.
입력 바인딩의 기본
Vue.js에서 폼 입력에 대한 양방향 데이터 바인딩은 v-model
지시문을 사용하여 달성됩니다. 이 지시문은 입력 요소의 값을 데이터 속성에 바인딩하여 입력에 대한 모든 변경 사항이 데이터에 반영되고 그 반대의 경우도 마찬가지입니다.
<template>
<div>
<input v-model="message" placeholder="Type something"/>
<p>Message: {{ message }}</p>
</div>
</template>
<script>
export default {
data() {
return {
message: ''
};
}
};
</script>
이 예에서 v-model
지시문은 입력 필드의 값을 message
데이터 속성에 바인딩합니다. 입력 필드에 입력된 모든 텍스트는 즉시 message
속성에 반영되고 문단에 표시됩니다.
다양한 입력 유형으로 작업하기
v-model
지시문은 텍스트 필드, 체크박스, 라디오 버튼, 선택 드롭다운을 포함한 다양한 입력 유형에서 작동합니다. 다양한 입력 유형에서 v-model
를 사용하는 방법은 다음과 같습니다.
- 텍스트 입력:
<input type="text" v-model="text" />
- 체크박스:
<input type="checkbox" v-model="checked" />
- 라디오 버튼:
<input type="radio" v-model="selected" value="option1" />
- 드롭다운 선택:
<select v-model="selected"> <option value="option1">Option 1</option> </select>
양식 제출 처리
폼 제출을 처리하려면 <form>
요소에서 @submit
이벤트 리스너를 사용할 수 있습니다. 다음은 Vue.js에서 폼 제출을 처리하는 방법에 대한 간단한 예입니다.
<template>
<form @submit.prevent="submitForm">
<input v-model="username" placeholder="Enter your username"/>
<button type="submit">Submit</button>
</form>
</template>
<script>
export default {
data() {
return {
username: ''
};
},
methods: {
submitForm() {
alert('Form submitted with username: ' + this.username);
}
}
};
</script>
이 예에서 @submit.prevent
지시문은 양식의 제출 이벤트를 수신하고 기본 동작을 방지합니다. 제출된 사용자 이름과 함께 경고를 표시하는 submitForm
메서드가 호출됩니다.
폼 검증 사용
폼 입력을 검증하는 것은 폼을 처리하는 데 필수적인 부분입니다. Vue.js는 기본 제공 검증을 제공하지 않지만, 사용자 지정 메서드나 VeeValidate와 같은 타사 라이브러리를 사용하여 검증을 처리할 수 있습니다. 간단한 검증 메서드를 구현하는 방법에 대한 기본적인 예는 다음과 같습니다.
<template>
<form @submit.prevent="validateForm">
<input v-model="email" placeholder="Enter your email"/>
<span v-if="!isEmailValid">Invalid email address</span>
<button type="submit">Submit</button>
</form>
</template>
<script>
export default {
data() {
return {
email: '',
isEmailValid: true
};
},
methods: {
validateForm() {
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
this.isEmailValid = emailPattern.test(this.email);
if (this.isEmailValid) {
alert('Form submitted with email: ' + this.email);
}
}
}
};
</script>
이 예에서 validateForm
메서드는 이메일 주소가 정규 표현식 패턴과 일치하는지 확인합니다. 이메일이 유효하면 양식을 제출하고, 그렇지 않으면 오류 메시지를 표시합니다.
결론
Vue.js 폼과 입력 바인딩을 이해하는 것은 대화형 및 데이터 기반 웹 애플리케이션을 구축하는 데 필수적입니다. v-model
지시문을 활용하고 폼 제출을 처리하면 사용자 입력을 효율적으로 관리하고 동적 폼을 만들 수 있습니다. 이러한 기술을 사용하면 Vue.js 애플리케이션에서 다양한 폼 관련 작업을 처리할 준비가 됩니다.