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看到的顺序: