简单来说,生命周期包含八个:
beforeCreate created //出生前后
beforeMount mounted //挂载前后
beforeUpdate updated //更新前后
beforeDestory destoryed //销毁前后
其中最常用到的是 created
和 mounted
,而 beforeCreate
和 destoryed
几乎用不
在 created
中可以获取ajax,初始化页面的操作; mounted
执行之后就表示真实dom已经渲染完成,可以进行操作了。
在 created
之后若是存在 template
属性[还需要有一个 el ],就会用模板的内容替换掉外部的HTML,此时#app内的内容是无效的,而且只能有一个根元素,不能是文本节点[之后开始编译(beforeMount)]。
之后数据一变化就可以调用 beforeUpdate
和 updated
,但是此方法有点鸡肋,因为可以用watch替换[更好用,可监听到具体那个数据变化了]。
之后若存在 vm.$destory()
方法,beforeDestory
和 destoryed
就会被调用,beforeDestory
可以用来清除定时器和解绑事件。
补充: this.$data
vm上的数据
this.$watch
监控
this.$el
当前的el元素
this.$set
对后加的属性实现响应式变化
this.$options
vm上的所有属性
this.$nextTick(()=>{})
异步方法,等待dom渲染完成后来获取vm。
this.$refs
所有ref的集合,可以取到真实的dom[<p ref="myp'><p/> this.$refs.myp
][如果不是通过v-for循环出来的只能获取一个,多个时为数组]