ElementUI+vuex 기반 양식 유효성 검사 공유(5.6 빠른 추가 설명)
4653 단어 양식 유효성 검사element-uivuex
프로젝트 배경 소개
프로젝트는 vue+elementUI를 기반으로 한 백그라운드 관리 시스템입니다.프로젝트에서 표에 대한 검증이 많이 언급되었는데 초기에 프로젝트의 진도를 감히 하기 위해 이 백엔드 시스템의 표 검증에 대해 통일을 하지 못했다.따라서 초기 솔루션은 다음과 같습니다.
data ,
elementUI,form , data return 。
export default {
data() {
// checkName
let checkName = (rule, value, callback ) => {
if( !value ) {
callback( new Error(' '))
}
let reg = /^[^]{1,20}$/;
if( !reg.test( value ) ){
callback(new Error(' 1~20'));
}else{
callback()
}
};
...
return{
....
ruleForm: {
name: '',
...
},
// rule , elementUI
rules: {
name: [
{ validator: checkName, trigger: 'blur' },
...
],
...
}
:model ref :rules
프로젝트가 후기에 이르렀을 때, 검증이 필요한 많은 필드가 똑같다는 것을 알게 될 것이다.모든 구성 요소에 이런 것들을 써야 하니 더 좋은 생각이 든다.예를 들어 이러한 검증 방법을 모두 꺼내서 하나의 단독 창고에 두어 다른 구성 요소를 필요에 따라 추출할 수 있는지 여부.처음에 생각한 것은 봉인을 채택하는 것이었지만 한 문장을 보고 vuex가 더 좋은 선택이라는 것을 알게 되었다.
의존도 소개
1. 요소 UI 구성 요소
2、vuex
아래의 해결 방안의 절차에서 관련 원리를 논의할 수 있다. 왜냐하면 vuex에 대해서도 방금 접촉했기 때문에 후기 프로젝트에서 그때 다른 글을 써서 점에 대한 정리를 한다.
솔루션 단계(설명 첨부)
앞에서 언급한 바와 같이 우리는 다른 구성 요소를 필요에 따라 추출할 수 있는 창고가 있기를 희망한다.Vuex는 하나의 프로젝트에서 유일하게 데이터 원본을 관리하는 창고입니다.데이터에서 다른 vue 구성 요소에 공유해야 하는 속성을 상태라고 이해합니다.간단하게 말하면 데이터에서 공용해야 하는 속성이다.
1、첫걸음
2. 두 번째 단계
import Vue from 'vue';
import Vuex from 'vuex';
3. 세 번째 단계
Vue.use(Vuex);
4, 4 단계
import Vuex from 'vuex'
import store from './vuex/store'
Vue.use(Vuex);
new Vue({
el: '#app',
router,
store,
template: '',
components: { App }
});
5, 5 단계
let actions = {
checkPrice({ commit }, obj ){
if( !obj.value ){
obj.callback(new Error(' '));
}
setTimeout(() => {
if ( !Number(obj.value) ) {
obj.callback(new Error(' '));
let reg = /^\d+(?:\.\d{2})?$/;
} else {
let reg = /^\d+(?:\.\d{2})?$/;
if (obj.value < 0) {
obj.callback(new Error(' 0'));
}else if( obj.value > 99999999 ) {
obj.callback(new Error(' 99999999'));
}else if( !reg.test( obj.value ) ) {
obj.callback(new Error(' 2 '));
}
else {
obj.callback();
}
}
}, 1000);
commit('dd')
}
// commit('dd')
};
let mutations = {
dd(){}
}
export default new Vuex.Store({
actions,
mutations
})
6단계
export default {
data() {
let checkPrice = (rules,value,callback )=>{
this.$store.dispatch('checkPrice',{rules,value,callback})
};
...
return{
...
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
강력한 폼 검증")); break; } return false; } return true; }, limit : function(len,min, max){ min = min || 0; max = max || Number.MAX_VA...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.