• vue2 生命周期钩子函数


    什么是生命周期

    Vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期

    vue生命周期钩子函数

    每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。

    生命周期(从无到有再到无)

    beforeCreated(实例创建前)

    此时组件的选项对象还未创建,el 和 data 并未初始化,因此无法访问methods, data等上的方法和数据

    created (实例创建后)

      在 created 中,data 和 methods 都已经被初始化好了,但是还没有渲染页面,如果要调用 methods 中的方法,或者操作 data 中的数据,最早,只能在 created 中操作。一般用于数据的初始化和处理,请求数据接口操作

    beforeMount(实例挂载前)

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

    mounted(实例挂载后)

    用于挂载之后使用,已经真实的挂载到了页面中,用户已经可以看到渲染好的页面了,在这个时候可以获取到dom操作,比如可以获取到ref等,操作的dom,在这个时候el和data都可以获取的到

    beforeUpdate(实例更新前)

    在数据更新之前被调用,页面中的显示的数据,还是旧的,此时 data 数据是最新的,页面尚未和 最新的数据保持同步

    update(实例更新后)

    事件执行的时候,页面和 data 数据已经保持同步了,都是最新的,所以可以执行依赖于DOM的操作

    beforeDestroy(实例销毁前)

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

    destroy(实例销毁后)

    在实例销毁之后调用,此时this已经不能访问

    1. // html
    2. for="(item,index) in list" :key="index">
    3. <div>{{item}}div>
  • // vue
  • beforeCreate() {
  • console.log('beforeCreate触发');
  • console.log(this.list);
  • },
  • created() {
  • console.log('created');
  • console.log(this.list);
  • console.log('定时器开始');
  • setTimeout(()=>{
  • this.list = [1,2,3,4,5]
  • },3000)
  • },
  • beforeMount() {
  • console.log('beforeMount');
  • },
  • mounted() {
  • console.log('mounted');
  • },
  • beforeUpdate() {
  • console.log(this.list);
  • console.log('beforeUpdate');
  • },
  • updated() {
  • console.log('updated');
  • },
  •  

  • 相关阅读:
    Elasticsearch:Bucket script 聚合
    股票量化交易系统的指标和策略有哪些?
    新建SpringCloud电商前端Vant项目
    腾讯云Redis云数据库有哪些优势?适用于哪些场景?
    buuctf_练[CSCCTF 2019 Qual]FlaskLight
    南美委内瑞拉市场最全分析开发攻略,收藏一篇就够了
    【JavaEE初阶】多线程 _ 基础篇 _ 线程安全问题(上篇)
    公网远程访问本地Jupyter Notebook服务
    牛客刷题——剑指offer(第五期)
    JavaScript 概述
  • 原文地址:https://blog.csdn.net/paidaboluo/article/details/126200214