Vue 声明周期和钩子函数

Vue 声明周期和钩子函数

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <div id="app">
        <p>{{ message }}</p>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                message: "1"
            },
            beforeCreate: function () {
                console.log('beforeCreate');
                console.log("DOM = " + (this.$el && this.$el.innerText));
                console.log("$data.message = " + (this.$data && this.$data.message));
                console.log('-----------------------------------------------');
            },
            created: function () {
                console.log('created');
                console.log("DOM = " + (this.$el && this.$el.innerText));
                console.log("$data.message = " + (this.$data && this.$data.message));
                console.log('-----------------------------------------------');
            },
            beforeMount: function () {
                console.log('beforeMount');
                console.log("DOM = " + (this.$el && this.$el.innerText));
                console.log("$data.message = " + (this.$data && this.$data.message));
                console.log('-----------------------------------------------');
            },
            mounted: function () {
                console.log('mounted');
                console.log("DOM = " + (this.$el && this.$el.innerText));
                console.log("$data.message = " + (this.$data && this.$data.message));
                console.log('-----------------------------------------------');
            },
            beforeUpdate: function () {
                console.log('beforeUpdate');
                console.log("DOM = " + (this.$el && this.$el.innerText));
                console.log("$data.message = " + (this.$data && this.$data.message));
                console.log('-----------------------------------------------');
            },
            updated: function () {
                console.log('updated');
                console.log("DOM = " + (this.$el && this.$el.innerText));
                console.log("$data.message = " + (this.$data && this.$data.message));
                console.log('-----------------------------------------------');
            },
            beforeDestroy: function () {
                console.log('beforeDestroy');
                console.log("DOM = " + (this.$el && this.$el.innerText));
                console.log("$data.message = " + (this.$data && this.$data.message));
                console.log('-----------------------------------------------');
            },
            destroyed: function () {
                console.log('destroyed');
                console.log("DOM = " + (this.$el && this.$el.innerText));
                console.log("$data.message = " + (this.$data && this.$data.message));
                console.log('-----------------------------------------------');
            }
        })
    </script>
</body>

</html>

这里写图片描述

  • beforeCreate : 组件实例刚被创建。属性和 DOM 都没有被初始化。
  • created : 组件实例创建完成。属性绑定成功、DOM 未初始化。
  • beforeMount : 模板挂载之前。属性绑定成功、DOM 未渲染。
  • mounted : 模板挂载完成。属性绑定成功、DOM 渲染成功。
  • beforeUpdate : 组件更新之前。属性更新成功、DOM 未更新
  • updated : 组件更新完成。属性和 DOM 更新成功
  • beforeDestory : 组件销毁前调用。属性和 DOM 依然存在。
  • destoryed : 组件已销毁。属性和 DOM 依然存在。

猜你喜欢

转载自blog.csdn.net/qq_20282263/article/details/80893393
今日推荐