Vue
中$nextTick
方法将回调延迟到下次DOM更新循环之后执行,也就是先更新完DOM,然后再执行回调里面的代码。
例如:再Dialog
中放入一个自定义的组件,并通过ref调用组件中的方法。
this.dialogVisible = true;
thist.$refs.editor.addNew();
这样调用报错:找不到addNew()
的定义。
在显示出dialog
后再调用addNew()
就没有任何问题
const that = this;
this.dialogVisible = true;
this.$nextTick(() => {
that.$refs.editor.addNew();
});
之前用
setTimeOut
来执行,也没有出问题,但是极不科学,还是应该使用$nextTick