vue遇到的问题总结

[TOC]

$nextTick

1
2
3
4
5
6
7
8
9
10
11
12
watch: {
a() {
更新数据
}
}
method:{
submit(){
this.a = xxx;
this.$emit('close');
}
}

有时候会碰到element的dialog在关闭的时候在watch中的东西来不及执行的情况,这是因为在关闭dialog之前来不及执行更新数据部分。
现在的需求是需要在数据更新之后才关闭窗口,
可以用nextTick是在DOM更新的时候触发的,数据更新了会引起最外层虚拟DOM更新,最终会引发dialog的DOM更新,所以上面可以写成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
watch: {
a() {
更新数据
}
}
method:{
submit(){
this.a = xxx;
this.$nextTick(function () {
// 等到watch数据、DOM更新完才关闭窗口
this.$emit('close');
});
}
}


【持续更新中…】

热评文章