Vue.js로 사용자 입력을 처리하는 것은 상당히 간단합니다. 상기의 도움으로 V 모델 지침 및 양식 유효성 검사에 대한 몇 가지 VUE 검증 플러그인 중 하나.
우리가 만들고있는 앱은 하나의 텍스트 요소 만 포함 할 것이지만 Vue로 양식 입력 필드를보다 잘 이해할 수 있도록 잠깐 다른 양식 요소를 살펴 보겠습니다.
Vue V- 모델 지시문
사용자 입력을 캡처해야하는 경우 양방향 데이터 바인딩을 가능하게하는 양식 입력 및 텍스트 영역에 v-model 지시문을 사용할 수 있습니다 . 사용하기가 매우 쉽습니다.
/src/components/Skills.vue 파일을 열고 다음을 포함하도록 템플릿 섹션을 조정하십시오.
<template>
<div class="container">
<!-- Add these two lines: -->
<input type="text" placeholder="Enter a skill you have.." v-model="skill">
{{ skill }}
<!-- Remaining HTML removed for brevity -->
그런 다음 <script> 섹션에서 참조 된 스킬 속성을 데이터 섹션에 추가합니다 .
data() {
return {
skill: '', // Add this line
skills: [
{ "skill": "Vue.js" },
{ "skill": "Frontend Developer" }
]
}
},
우리가이 파일을 보았을 때, CSS 섹션의 입력 버튼을 빠르게 스타일링하자. 이 룰셋을 추가하십시오.
input {
width: calc(100% - 40px);
border: 0;
padding: 20px;
font-size: 1.3em;
background-color: #323333;
color: #687F7F;
}
파일을 저장하고 입력 필드에 입력을 시작하십시오. 입력 필드 아래에 보간 된 스킬 속성은 사용자가 입력 한대로 사용자 입력을 캡처 한 것을 보여줍니다.
이것은 우리에게는별로 도움이되지 않으므로 양식을 제출할 때 사용자 입력을 캡처합시다.
Vue에서 양식 제출
Skills.vue 파일 의 템플릿을 다음과 같이 수정하십시오 .
<form @submit.prevent="addSkill">
<input type="text" placeholder="Enter a skill you have.." v-model="skill">
</form>
여기서는 양식 요소로 입력 내용을 싸는 것 입니다. 우리는 @ submit.prevent를 사용 하여 폼을 제출하고 페이지를 다시로드하지 못하게하고 addSkill 이라는 메서드에 바인딩합니다 .
addSkill 을 컴포넌트 로직에서 메소드로 정의 해 봅시다 .
export default {
name: 'Skills',
data() {
// Removed for brevity
},
// Add this section:
methods : {
addSkill(){
this.skills.push({skill: this.skill});
this.skill = '';
}
}
}
여기, 우리가하고있는 모든라는 방법을 정의하는 addSkill를 () 및이 호출 할 때, 우리는에 밀어 기술 에 정의 배열 (데이터) 섹션, 그리고 우리가 재설정하여 입력을 취소 기술 빈 문자열로 속성을 .
스킬을 입력하고 Enter 키를 누르십시오. 입력 필드 아래에 목록에 추가됩니다.
여러 사용자 입력 처리
양식에는 현재 텍스트 입력 만 포함되지만 데모 목적으로는 확인란을 추가합니다.
다음과 같이 템플리트를 수정하십시오.
<form @submit.prevent="addSkill">
<input type="text" placeholder="Enter a skill you have.." v-model="skill">
<!-- Add this line -->
<input type="checkbox" id="checkbox" v-model="checked">
</form>
에서 스크립트 섹션 추가 :
return {
checked: false, // Add this, it sets the checked property to false
skill: '',
그런 다음 addSkill () 메소드를 업데이트하십시오 .
addSkill(){
this.skills.push({skill: this.skill});
this.skill = '';
console.log('The checkbox value is: '+this.checked) // Add this
}
확인란을 선택하고 입력에 문자열을 입력하고 Enter 키를 누르면 콘솔에 확인란이 선택 되었음이 표시됩니다.
이 확인란을 필요로하지 않으므로 마지막 몇 단계에서 백업하여 확인란 및 관련 코드를 제거하십시오.
Vue 양식 유효성 검사
npm이나 원사를 통해 설치할 수있는 몇 가지 Vue 양식 유효성 검사 패키지가 있습니다. 널리 사용되는 검증 패키지는 VeeValidate 입니다.
VeeValidate는 많은 옵션이있는 강력한 플러그인이지만 몇 가지 기본 옵션을 사용하여 텍스트 입력이 올바르게 적용되는지 확인합니다.
먼저, 원사를 사용하여 콘솔에 설치합니다.
> yarn add vee-validate
다음으로 /src/main.js 파일 에 추가해야 합니다.
import Vue from 'vue'
import App from './App.vue'
import VeeValidate from 'vee-validate'; // Add this
Vue.use(VeeValidate); // Add this
// Other code removed for brevity
큰! 이제 사용할 준비가되었습니다.
그런 다음 /src/components/Skills.vue 에서 템플릿을 수정합니다.
<input type="text" placeholder="Enter a skill you have.." v-model="skill" v-validate="'min:5'" name="skill">
<p class="alert" v-if="errors.has('skill')">{{ errors.first('skill') }}</p>
여기에 v-validate 를 min : 5로 설정 하고 입력 에 VeeValidate에 필요한 이름 을 지정했습니다.
다음 으로 v-if 지시문을 사용하여 새로운 p 요소를 추가합니다 . VeeValidate에서 생성 하는 오류 개체에 스킬 오류가 있으면 보간을 통해 오류를 표시합니다.
이것을하기 전에, .alert를 위한 빠른 CSS 규칙 세트를 추가해 보겠습니다 .
.alert {
background: #fdf2ce;
font-weight: bold;
display: inline-block;
padding: 5px;
margin-top: -20px;
}
이것을 저장하고 5 자 미만으로 입력하면 다음과 같이 표시됩니다.
큰. 하지만 한 가지 문제가 있습니다. 입력 한 글자 수가 5 자 미만인 경우에도 양식을 제출할 수 있습니다.
addSkill () 메서드를 수정하여 해결할 수 있습니다 .
addSkill() {
this.$validator.validateAll().then((result) => {
if (result) {
this.skills.push({skill: this.skill});
this.skill = '';
} else {
console.log('Not valid');
}
})
}
.
'개발 > Vue.JS' 카테고리의 다른 글
Vue 라우터 자습서 - Vue의 라우터 라이브러리 사용 (0) | 2018.03.11 |
---|---|
Vue Animation Tutorial - Vue의 애니메이션 시스템 사용법 배우기 (0) | 2018.03.11 |
Vue CSS Tutorial - 클래스 및 스타일 바인딩 (0) | 2018.03.11 |
Vue 템플릿 튜토리얼 - Interpolation 및 Directives (0) | 2018.03.11 |
Vue 구성 요소 자습서 - Vue.js 응용 프로그램의 기본 구성 요소 (0) | 2018.03.11 |