vue也有自己的生命周期。数据初始化的生命周期如下:
beforeCreate、created、beforeMount、mounted
1.beforeCreate
此时,无法通过vm访问data中的数据,methods中的方法。
2.created
此时,可以通过vm访问到data中的数据,methods中配置的方法。
3.beforeMount
此时,页面呈现的是未经vue编译的DOM结构,所有dom操作均不生效。
4.mounted
页面中呈现的是经过Vue编译的DOM,对dom的操作均有效,一般在次进行开启定时器、发送网络请求、订阅消息、绑定自定义事件等。
vue完成模板的解析并把初始的真实dom元素放入页面后(挂载完毕)调用mounted
参考代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>vue测试</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
<div id="root">
<h2> </h2>
</div>
<script type="text/javascript">
new Vue({
el: '#root',
data: {
},
beforeCreate() {
console.log("beforeCreate")
},
created() {
console.log("created")
},
beforeMount() {
console.log("beforeMount")
},
mounted() {
console.log("mounted")
},
})
</script>
</body>
</html>
执行后F12看到的顺序:
