React与Vue都有lifecycle生命周期的概念,表示每个组件实例在被创建之前都要经过一系列的初始化过程。比如设置数据监听、编译模板、挂载实例到视图、在数据变化时更新视图等。
Vue生命周期
所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算。这意味着 你不能使用箭头函数来定义一个生命周期方法 (例如 created: () => this.fetchTodos())。这是因为箭头函数绑定了父上下文,因此 this 与你期待的 Vue 实例不同,this.fetchTodos 的行为未定义。
主要有created、mounted、updated、destroyed,以及各自的before钩子。相比React多了个特殊的activated和deactivated,该钩子只在keep-alive 组件才起作用。
demo如下:
new Vue({
name: 'demo',
el: '#demo',
beforeCreate() {
//在实例初始化之后,数据观测 (data observer)
//和 event/watcher 事件配置之前被调用。
},
created() {
//在实例创建完成后被立即调用。在这一步,
//实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,
//watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。
},
beforeMoute(){