组件上的 v-show 和 v-if

一个模态框组件
我想着它是一个按钮,按一下就显示,应该算是频繁操作,我就用v-show了
然而实际测试中,在父组件运行时,子组件的created中的方法已经开始执行了,这肯定是不对的。
于是转念一想,v-show实际上就是display:none,在dom中已经存在了,他的生命周期也开始了。用v-if为true的话,是在DOM中才创建一个元素,他的生命周期也在创建时才开始执行,与我的使用场景:按一个按钮,才获取这个按钮所属用户的信息 相符。
上网查询了相关信息,发现父子组件的生命周期存在一定的顺序:
一个完整的父子组件生命周期:
父beforeCreate -> 父created -> 父beforeMount -> 子beforeCreate -> 子created -> 子beforeMount -> 子mounted -> 父mounted->父beforeUpdate->子beforeUpdate->子updated->父updated->父beforeDestroy->子beforeDestroy->子destroyed->父destroyed

浙公网安备 33010602011771号