vue 里的代码该如何组织
element-ui 的后台,vue 是版本 2。
//...methods: {
showDialog1() {
// ...
// 弹出第一个窗口,有确认和取消按钮
},
showDialog2() {
// ...
// 弹出第二个窗口,有确认和取消按钮
},
showDialog3() {
// ...
// 弹出第三个窗口,有确认和取消按钮
},
// 第一个窗口确认按钮的点击事件
handleDialog1Confirm() {
this.showDialog3();
},
// 第一个窗口 点击取消按钮
handleDialog1Cancel() {
this.showDialog2();
}
// 第二个窗口确认按钮的点击事件
handleDialog2Confirm() {
this.doMethodA();
},
// 第三个窗口确认按钮的点击事件
async handleDialog3Confirm() {
await this.doMethodB(); // 可能是异步方法
await this.doMethodC();
this.doMethodA();
},
doSomething() {
// 这里需要执行一个类似流程的事件
// 比如 dialog 1 点击了取消,弹出 dialog 2
// dialog 1 点击了确认, 弹出 dialog 3
// dialog 2 点击确认, 直接执行 A 方法。
// dialog 3 点击确认 执行 B C 方法 改变某些数据再执行 A 方法。
},
// ...其余的方法
}
类似以上代码(会有多个弹出窗口和各种依赖操作),有没有更好的组织办法,比如 RxJS 用来控制流程。
不然这样涉及修改的话,方法一个依赖一个修改起来会很麻烦。
回答:
学编程的时候,顺序、分支、循环 —— 不就是最基本也最重要的流程控制么?
如果说是因为异步的问题造成了代码流程看不顺眼,那就用 await 写法。
- 理解 JavaScript 的 async/await
- ↓↓↓突然想起来写过一篇关于异步弹框的,来补个参考链接↓↓↓
- 网页弹框的异步行为分析
回答:
如果是觉得使用弹框回调函数打破已有的逻辑,跟上面老兄一样,建议使用async/await.
且推荐一个工具库:
- https://www.npmjs.com/package...
滴滴出品的,但是好像很久没有维护了。
他可以将一个弹框做到promise中,达到下面的效果:
// 打开弹开await xxxModel.open(配置)
// 只有在弹框被关闭后才执行。
这样就没有打破流程的痛苦感了。
以上是 vue 里的代码该如何组织 的全部内容, 来源链接: utcz.com/p/937434.html