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

上一篇 下一篇

猜你喜欢

热点阅读