由于框架的限制,我写了一段多表单检验,但觉得代码还有很大的优化空间

之后我丢给 ChatGPT(3.5) 并叫他学习代码内容,等待反馈后,再叫他重构代码

代码内容

着实惊艳到了 😲

不仅解决了冗余问题,还解决了执行步骤问题

本来需要每一个表单都要判断一次,现在只需要找到最近未通过的表单

我写的乐色代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

let validList = [];
that.$refs.form1.validate((valid) => {
if (!valid) validList.push('base');
});
that.$refs.form2.validate((valid) => {
if (!valid) validList.push('entry');
});
that.$refs.form3.validate((valid) => {
if (!valid) validList.push('category');
});
that.$refs.form4.validate((valid) => {
if (!valid) validList.push('settlement_day');
});

if (validList.length > 0) {
that.page.activeTabName = validList[0];
}

GPT 写的代码(已经过我的优化,有一个回调出错)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

const forms = [
{ ref: that.$refs.form1, name: 'base' },
{ ref: that.$refs.form2, name: 'entry' },
{ ref: that.$refs.form3, name: 'category' },
{ ref: that.$refs.form4, name: 'settlement' },
];

const invalidForm = forms.find((form) => {
let valid = false;
form.ref.validate((curValid) => (valid = curValid));
return !valid;
});

if (invalidForm) {
console.log(that.form.data);
that.page.activeTabName = invalidForm.name;
return;
}