生命周期
一、生命周期钩子
每个Vue实例在被创建时都要经过一系列的初始化过程。例如, 需要设置数据监听、编译模板、将
实例挂载到DOM并在数据变化时更新DOM等。同时在这个过程中也会运行一些叫做生命周期钩子
的函数,这给了用户在不同阶段添加自己的代码的机会。
比如created 钩子可以用来在一个实例被创建之后执行代码:
new Vue({
data: (
a : 1
},
created: function () {
// this 指向Vm实例
console.1og('a is:'+ this.a)
}
))
//=>"a is : 1"
也有一些其它的钩子,在实例生命周期的不同阶段被调用,如mounted 、updated 和destroyed。生命周期钩子的this 上下文指向调用它的Vue实例。
不要在选项属性或回调上使用箭头函数,比如created: () => console .1og(this.a)或vm. Swatch('a', newValue => this .myMethod())
。因为箭头函数并没有this ,this
会作为变量一直向上级词法作用域查找,直至找到为止,经常导致Uncaught TypeError: Cannot read property of undefined 或Uncaught TypeError: this myMethod is not a function
之类的错误。
注意生命周期钩子函数不能使用箭头函数,箭头函数是不带this
的。</