是否可以通过传递参数(Vuelidate)重新使用计算的 属性
Is it possible to re-use a computed property by passing a parameter (Vuelidate)
我将 Vuelidate 用于具有多个部分的表单。这些部分中的每一个都有 formData 对象和名称。嵌套在其中每一个中的是一个 ZIP 对象,用于通过大量验证来验证邮政编码....必需、数字、最小长度和最大长度。我想做的是计算一个 属性 zipCodeValid() 并在两者上使用。截至目前,我有两个不同的计算属性针对每个部分,这并不可怕,但我希望看到一个更清晰的方法被重用。
Zip validation:
zip: {
required,
numeric,
minLength: minLength(5),
maxLength: maxLength(5),
}
computed: {
sectionOneZipValid() {
return (
(this.$v.formData.secOne.zip.$dirty &&
!this.$v.formData.secOne.zip.numeric) ||
(this.$v.formData.secOne.zip.$dirty &&
!this.$v.formData.secOne.zip.minLength) ||
(this.$v.formData.secOne.zip.$dirty &&
!this.$v.formData.secOne.zip.maxLength)
)
},
sectionTwoZipValid() {
return (
(this.$v.formData.secTwo.zip.$dirty &&
!this.$v.formData.secTwo.zip.numeric) ||
(this.$v.formData.secTwo.zip.$dirty &&
!this.$v.formData.secTwo.zip.minLength) ||
(this.$v.formData.secTwo.zip.$dirty &&
!this.$v.formData.secTwo.zip.maxLength)
)
}
}
是的,你可以像这样传递参数..
computed: {
sectionZipValid() {
return sec => { return (
(this.$v.formData[sec].zip.$dirty &&
!this.$v.formData[sec].zip.numeric) ||
(this.$v.formData[sec].zip.$dirty &&
!this.$v.formData[sec].zip.minLength) ||
(this.$v.formData[sec].zip.$dirty &&
!this.$v.formData[sec].zip.maxLength)
)}
},
}
也可以称为
sectionZipValid('secOne')
OR
sectionZipValid('secTwo')
我将 Vuelidate 用于具有多个部分的表单。这些部分中的每一个都有 formData 对象和名称。嵌套在其中每一个中的是一个 ZIP 对象,用于通过大量验证来验证邮政编码....必需、数字、最小长度和最大长度。我想做的是计算一个 属性 zipCodeValid() 并在两者上使用。截至目前,我有两个不同的计算属性针对每个部分,这并不可怕,但我希望看到一个更清晰的方法被重用。
Zip validation:
zip: {
required,
numeric,
minLength: minLength(5),
maxLength: maxLength(5),
}
computed: {
sectionOneZipValid() {
return (
(this.$v.formData.secOne.zip.$dirty &&
!this.$v.formData.secOne.zip.numeric) ||
(this.$v.formData.secOne.zip.$dirty &&
!this.$v.formData.secOne.zip.minLength) ||
(this.$v.formData.secOne.zip.$dirty &&
!this.$v.formData.secOne.zip.maxLength)
)
},
sectionTwoZipValid() {
return (
(this.$v.formData.secTwo.zip.$dirty &&
!this.$v.formData.secTwo.zip.numeric) ||
(this.$v.formData.secTwo.zip.$dirty &&
!this.$v.formData.secTwo.zip.minLength) ||
(this.$v.formData.secTwo.zip.$dirty &&
!this.$v.formData.secTwo.zip.maxLength)
)
}
}
是的,你可以像这样传递参数..
computed: {
sectionZipValid() {
return sec => { return (
(this.$v.formData[sec].zip.$dirty &&
!this.$v.formData[sec].zip.numeric) ||
(this.$v.formData[sec].zip.$dirty &&
!this.$v.formData[sec].zip.minLength) ||
(this.$v.formData[sec].zip.$dirty &&
!this.$v.formData[sec].zip.maxLength)
)}
},
}
也可以称为
sectionZipValid('secOne')
OR
sectionZipValid('secTwo')