v-show只要满足条件,视图将会渲染,渲染后条件为false时候,其实视图还存在,只不过是被display:none隐藏。这个时候如果之前通过v-show控制的元素的数据丢失就会报错,归根到底还是跟其渲染方式有关系,使用v-if可以解决问题。 v-if条件存在就会重新渲染视图,会触发v-if控制的元素的vue生命周期钩子函数,v-show不会。