vue里面,常用的事件onMounted里,总喜欢用一个nextTick:
onMounted(() => {nextTick(() => {init();});
});
这个东西有啥用呢?我总搞不懂。
今天我忽然有点明白了。这是一个跟前面语句有关的方法。意思是,等前面的都执行完了,再执行nextTick里面的方法。比如说,页面上有一块内容,正常情况下是隐藏的,满足条件下才显示。这里用了v-if来控制。
页面
<!-- 正常尺寸窗口 --><divclass="pop-container pop-container-normal"v-if="state.show && !state.minsize"><div class="win-head-banner" @click="minimize()"><el-icon><Close /></el-icon></div><warn-new ref="new1"></warn-new></div>
脚本
const new1 = ref();const onMessage = () => {//某个事件触发了本函数,首先显示隐藏内容,然后调用其中的方法。restore();//展示隐藏部分nextTick(() => {new1.value.warning();//隐藏部分内容中,有一个部件new1,调用new1的方法});
};
由以上2段代码可知,某个事件触发下,首先显示隐藏内容,然后调用其中的某个部件的方法。假如这样写:
restore();//展示隐藏部分new1.value.warning();//隐藏部分内容中,有一个部件new1,调用new1的方法
结果就是new1的方法没有被调用。为啥,因为隐藏内容尚未展示完毕。加上nextTick就可以,意思我想应该是,等待前面的语句执行完,才触发nextTick里面的方法。