粗略了解生命周期
开头来一张官方文档上的图片先
可以看出在vue的整个生命周期中会有很多钩子函数提供给我们,然我们可以在不同的生命周期时刻进行操作,这些钩子函数分别有:
- beforeCreate
- created
- beforeMount
- mounted
- beforeUpdate
- updated
- beforeDestroy
- destroyed
首先先来一个简单案例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><!--导包-->
</head>
<body>
<div id="app">
<input type="button" @click=""/>
</div>
<script>
var app = new Vue({
el:"#app",
data:{
message:"数据"
},
methods:{
fun:function(){
console.log("点击事件");
}
},
beforeCreate:function(){
console.log("----------------beforeCreate----------------");
console.log("对象"+this);
console.log("数据"+this.message);
console.log("方法"+this.fun());
},
created:function(){
console.log("----------------created----------------");
console.log("对象"+this);
console.log("数据"+this.message);
console.log("方法"+this.fun());
},
beforeMount:function(){
console.log("----------------beforeMount----------------");
console.log("对象"+this);
console.log("数据"+this.message);
console.log("方法"+this.fun());
},
mounted:function(){
console.log("----------------mounted----------------");
console.log("对象"+this);
console.log("数据"+this.message);
console.log("方法"+this.fun());
}
})
</script>
</body>
</html>
运行结果
起始位置—>beforeCreate(创造对象前)
这时候js的对象都还没有有被创造出来(举个例子:这一步之前,上面js中的var app
都还没有被创造出来),也就是说对象,数据,方法这时候都还没有绑定到对象上。
beforeCreate(创造对象前)—>Createed(创造对象后)
这时候数据和对象都已经绑定到对象上了。但是这里不会对将数据在视图上显示,这时候这一段生命周期可以理解为实例化对象,就好像java中new一个对象。因为这时候并没有实现挂载,它是找不到位置的。
Createed(创造对象后)—>beforeMount(渲染前)
这里主要就是寻找el
挂载点
beforeMount(渲染前)—>Mounted(渲染后)
将对象绑定到挂载点上,对视图进行渲染