关于v-if与v-else连用的坑

今天在根据一个bool值来显示两个不同的文本的时候,用的是v-if和v-else.
但是,在我要获取v-else的里面的某个元素的文本的时候,发现获取不到。

原因:
v-else的渲染可能有延迟,我加了定时器延迟之后就获取到了。
这里除了加定时器之外,还可以使用Vue.nextTick()方法,表示在下一次DOM更新循环结束之后执行。
延迟的主要原因是因为v-if再切换的时候,是会重新渲染html元素的结构,但是v-show不会,v-show只是改变display的值。

或者不用v-else,还是用v-if来控制,也是可以正常获取到的。

你可能感兴趣的:(关于v-if与v-else连用的坑)