vue2.0生命周期
- beforeCreate 此时$el、data 的值都为undefined
- create之后,此时可以拿到data的值,但是$el依旧为undefined
- beforeMount 此时$el的值为“虚拟”的元素节点
- mount之后,mounted之前,“虚拟”的dom节点被真实的dom节点替换,并将其插入到dom树中,于是在触发mounted 时,可以获取到$el为真实的dom元素
created、mounted、activated、deactivated
这四个是最常用到的部分。这部分需要注意下,当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。当再次进入(前进或者后退)时,只触发activated。
参考:http://xiangsongtao.com/article/5853b2c0044bf1353af82fbf http://www.jianshu.com/p/42429f4d8f9e?nomobile=yes
还有,beforeDestroy 和 destroyed 钩子一般在v-if 和 v-for时触发
例子:
<demo v-if="hasDemo"></demo>
那么将 hasDemo 由 true 改为 false 时,会触发 Demo 组件的销毁钩子。
注意 v-show 指令不销毁元素而只是隐藏,故不会触发这个钩子。
vue官网:https://cn.vuejs.org/v2/guide/instance.html#生命周期图示
参考:http://www.cnblogs.com/gagag/p/6246493.html