사용하기 쉬운 양식 작성 ①
6940 단어 Vue.js
Vue.js를 사용하여 사용하기 쉬운 양식 작성.
완성 예
정상시
포커스 후
이와 같이, 포커스 후에 폼의 색을 회색에서 흰색으로 바꾸어 가고 싶습니다.
input 태그에 V-on 이벤트 설정
<input v-model="title"
type="text"
class="text-input"
placeholder="Add new list"
@focusin="startEditing"
@focusout="finishEditing"
>
data() {
return {
title: '',
// 通常時はフォーカスしていないのでfalseに設定
isEditing: false,
}
},
methods: {
addList() {
this.$store.dispatch('addlist', { title: this.title })
this.title = ''
},
// フォーカスされた時
startEditing() {
this.isEditing = true
},
// フォーカスしていない時
finishEditing() {
this.isEditing = false
},
}
isEditing 상태가 true 일 때만 active 클래스를 동적으로 추가합니다.
.active .text-input {
background-color: #fff;
}
computed로 data에 있는 isEditing의 상태를 감시
data() {
return {
title: '',
isEditing: false,
}
},
// ★ここから追加
computed: {
classList() {
const classList = ['addlist']
// isEditingがtrueならactiveクラスを追加
if (this.isEditing) {
classList.push('active')
}
return classList
},
},
// ★ここまで追加
methods: {
위에서 정의한 computed를 form에 바인딩
<form :class="classList" @submit.prevent="addList">
<input v-model="title"
type="text"
class="text-input"
placeholder="Add new list"
@focusin="startEditing"
@focusout="finishEditing"
>
<button type="submit"
class="add-button">
Add
</button>
</form>
포커스 후, 폼의 색이 바뀌고 있으면 성공입니다!
Reference
이 문제에 관하여(사용하기 쉬운 양식 작성 ①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tkht2401/items/87711716672b9b3c087e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)