vue 的生命周期

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:vue生命周期的详细介绍


提示:以下是本篇文章正文内容,下面案例可供参考

一、介绍

vue生命周期分别有创建、初始化数据、编译模板、挂在DOM、渲染-更新-渲染、卸载利用钩子函数完成对应的项目效果

二、八个方法

beforeCreate( 创建前 )

在实例化之后,数据的观测和事件的配置之前的时候调用,此时组件的选项对象还未创建,el 和 data 并未初始化,因此无法访问methods, data, computed等上的方法和数据

    beforeCreate() {
        //在组件还没有创建好时,是不能访问组件的任何方法和属性的
        console.log('beforeCreate 组件开始创建前')
    },

created ( 创建后)

在创建之后使用,主要用于数据观测、属性和方法的运算,watch/event事件回调,完成了data 数据的初始化,el没有。 然而,挂在阶段还没有开始.

    created() {
       // 组件创建好之后可以组件实例的变量和方法
       // 组件创建好之后不能访问dom
       //  $.post('user',function(res){
       //     this.username= res.data
       // })
       //可以在此钩子函数请求数据
        console.log('created 组件创建好了')
    },

beforeMount (挂载前)

用于在挂载之前使用,在这个阶段是获取不到dom操作的,把data里面的数据和模板生成html,完成了data等初始化,注意此时还没有挂在html到页面上

    beforeMount() {
        // 挂载组件
        // 组件将要被挂载了、
        // 可以访问到要挂载的目标
        // 不能访问到组件的dom
        // 这里可以访问到dom 但不能访问到组件的dom只能访问到要挂载的目标dom
        console.log(this.$el) 
        console.log('beforeMount 组件开始挂载')
     },

mount (挂载后)

用于挂载之后使用,在这个时候可以获取到dom操作,比如可以获取到ref等,操作的dom, 在这个时候只能调用一次ajax,在这个时候el和data都可以获取的到

    mounted() {
            // 组件挂载完成
            // 只有当组件挂载完成之后才能访问到组件的dom
            console.log(this.$el) 
            console.log('mounted 组件挂载完成')
            
            // 必须通过mounted钩子之后去获取到组件的dom元素
        }

beforeUpdate (更新前)

在数据更新之前被调用,发生在虚拟DOM重新渲染,可以在该钩子中进一步地更改状态,不会触发重复渲染过程

    beforeUpdate() {
            // 只有更新和模板发生关联的数据才会触发这个钩子
            // 和模板绑定的数据更新之前
            console.log('beforeUpdate 和模板绑定的数据更新之前')
        }

updated (更新后)

在由于数据更改导致地虚拟DOM重新渲染会调用,调用时,组件DOM已经更新,所以可以执行依赖于DOM的操作,然后在大多是情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环,但是在服务器端渲染期间不被调用,可以用于监听某些数据的时候使用钩子

    updated() {
            // 只有更新和模板发生关联的数据才会触发这个钩子
            // 和模板绑定的数据更新完成之后
            console.log('updated 和模板绑定的数据更新完成之后')
        },

beforeDestroy(销毁前)

在这个时候还是可以用this来获取,可以用于销毁计时器时候使用,为了防止跳转到其它页面该事件还在执行,还可以清除dom事件等

    beforeDestroy() {
            // 一般像页面组件 页面离开之前 保存数据 可以通过这个钩子来完成
            // 当组件销毁之前触发
            console.log('beforeDestroy 当组件销毁之前触发')
            console.log(this.$el)
        }

destroy(销毁后)

在实例销毁之后调用,调用后,所以的事件监听器会被移出,所有的子实例也会被销毁.

    destroyed() {
            // 当组件销毁之后触发
            console.log('destroyed 当组件销毁之后触发')
            //等待系统自动回收对象
            //销毁之后组件的对象还在,但是跟vue的实例脱离了关系了
        }

图解vue生命周期

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值