javascript - Vue JS - 让函数中的条件更高效
问题描述
我觉得可以缩短此功能,但我不确定最好的方法是什么。我想让以下功能更有效。对你的帮助表示感谢。
我的功能
onStudentActionSelect: function () {
if (this.selectedRows.length === 1) {
this.$store.commit(SET_MODAL_OPTIONS, {
modalContent: MODAL_CONTENT.DELETE_STUDENT(this.selectedRows[0].name),
modalSettings: MODAL_SETTINGS.CANCEL_DELETE,
modalCallback: this.deleteStudent
})
} else if (this.selectedRows.length > 1) {
this.$store.commit(SET_MODAL_OPTIONS, {
modalContent: MODAL_CONTENT.DELETE_STUDENTS(this.selectedRows.length),
modalSettings: MODAL_SETTINGS.CANCEL_DELETE,
modalCallback: this.deleteStudents
})
}
}
解决方案
唯一改变的是您的模式的内容,因此您可以在提交到商店之前确定这一点。像这样简化代码通常涉及确定保持不变的部分,并在变量/参数中准备其余部分。
onStudentActionSelect: function () {
// Do nothing if we have nothing selected
if (!this.selectedRows.length) {
return;
}
const modalContent = this.selectedRows.length === 1 ? MODAL_CONTENT.DELETE_STUDENT(this.selectedRows[0].name) : MODAL_CONTENT.DELETE_STUDENTS(this.selectedRows.length);
this.$store.commit(SET_MODAL_OPTIONS, {
modalContent,
modalSettings: MODAL_SETTINGS.CANCEL_DELETE,
modalCallback: this.deleteStudent
})
}
推荐阅读
- sql - 选择总和大于或等于的前几行
- bash - 启动 vim 的 bash 脚本可以在管道中中止吗?
- python - 具有大量实例的 Python 类
- python-3.x - EC2 pycurl 已安装但未找到
- angular - Angular & Firebase - 想要获取 oobCode 并判断它是否被交互
- python - sqlalchemy:写入具有 datetimerange 类型的表
- python - python类属性的打印错误,我哪里出错了?
- html - 在电子邮件的 HTML 文本中插入当前日期
- javascript - 多次按下时使表单仅提交一次
- python - pyinstaller 生成的 exe 文件执行有问题