vue生命周期钩子函数

88 阅读1分钟
<body>
    <div id="app">
        <h1>{{msg}}</h1>
    </div>
    <script src="./vue 2.6.14.js"></script>
    <script>
        let vm = new Vue({
            el: "#app",
            data: {
                msg: "我要学vue"
            },
            // 创建前
            beforeCreate() {
                // 在这里 data中的属性值获取不到
                // 但是能获取到vue的实例化对象
                console.log('组件实例刚刚被创建', this, this.msg);
            },
            // 创建后
            created() {
                /* 组件实例刚刚创建完成,属性已经绑定,但是DOM还未生成,¥le属性还不存在 */
                console.log(this.el, this.msg);
                // 你请求接口就是走这个钩子函数发出的
                // 可以从ajax里面获取数据
                setTimeout(() => {
                    let data = '请求成功'
                    this.msg = data
                }, 500)
            },
            // 挂载前
            beforeMount() {
                // 模板编译、挂载之前
                console.log(this.$el, this.msg);
                // this.$el 只是获取到了 但是没有挂载到模板上
                // data里的值是渲染不出来的
                console.log(document.getElementsByTagName('h1')[0]);
                console.log(document.getElementsByTagName('h1')[0].innerHTML);
            },
            // 挂载后
            mounted() {
                // this.$el 是获取到了 并且挂载到模板上
                console.log(this.el, this.msg);
                // data里面的值是可以渲染出来的
                console.log(document.getElementsByTagName('h1')[0]);
                console.log(document.getElementsByTagName('h1')[0].innerHTML);
                // 在dom操作中适合在mounted里面去执行
            }
        })
        // $el 是vm实例化对象上使用
        console.log(vm.$el);
    </script>
</body>