4. 生命周期
2019-05-27 本文已影响0人
论宅
vue实例在被创建的时候都要经过一系列的初始化过程,如,设置数据监听,编译模板,将实例挂载到dom并在数据变化时更新dom。
同时,在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。
created
created 钩子可以用来在一个实例被创建之后执行代码:
new Vue({
data:{a;1},
created:function(){
console.log("a is"+this.a)
}
})
文中的this指向vm实例,所以vm.a就是data中的a。
也有一些其他的钩子,在实例生命周期的不同阶段被调用,如mounted,updated,distroyed。生命周期钩子的this上下文指向【调用它的示例】。
【不要在选项属性或者回调上使用箭头函数,比如:】
created: () => console.log(this.a)
//或
vm.$watch('a', newValue => this.myMethod())
因为箭头函数并没有 this,this 会作为变量一直向上级词法作用域查找,直至找到为止,经常导致
Uncaught TypeError: Cannot read property of undefined 或
Uncaught TypeError: this.myMethod is not a function 之类的错误
生命周期树可以在这里查看——
https://cn.vuejs.org/v2/guide/instance.html