zoukankan      html  css  js  c++  java
  • vue实例的生命周期

    每个Vue实例在被创建之前都要经过一系列的初始化过程,设置数据监听、编译模板、在dom上挂载实例、数据变化时更新DOM,在这个过程中会运行一些叫做生命周期钩子的函数,让用户能够在一些特定的场景下添加他们自己的代码。

    一、相关属性
    1、beforeCreate
    在实例初始化之后,数据观测和事件配置之前调用该钩子。
    2、created
    在实例创建完成后,即实例完成数据观测,属性和方法的运算,watch/event事件回调后立即调用该钩子。由于挂载阶段还没开始,$el属性目前不可见。
    3、beforeMount
    在挂载前调用该钩子。
    4、mounted
    el被新创建的vm.$el替换,并挂载到实例后调用该钩子,渲染。
    5、beforeUpdate
    数据更新了,在虚拟DOM重新渲染和打补丁之前调用该钩子。
    6、updated
    数据更新了,在虚拟DOM重新渲染和打补丁之后调用该钩子,重绘。数据发生变化,重新渲染更新视图后触发该钩子。updated不会承诺所有的子组件被一起重绘,如果希望整个视图被重绘完毕后触发updated,可以用this.$nextTick。
    7、beforeDestroy
    实例销毁前调用该钩子。
    8、destroyed
    Vue实例销毁后调用该钩子。调用后,Vue实例指示的所有东西会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

    二、基本用法

    <div id="J_app_lifecycle"> {{msg}} <input type="text" v-model="msg"></div>
    
    var data = { msg: 'learning vue lifecycle' };
    var vapp = new Vue({
        el:"#J_app_lifecycle",
        data:data,
        beforeCreate:function(){
            console.log('beforeCreate:'+this.msg);
        },
        created:function(){
            console.log('created:'+this.msg);
        },
        beforeMount:function(){
            console.log('beforeMount:'+this.msg);
        },
        mounted: function () {
        //el被新创建的life.$el替换,并挂载到实例上去之后调用该钩子。
          this.$nextTick(function () {
            console.log('mounted:'+this.msg);
          })
        },
        beforeUpdate:function(){
            console.log('beforeUpdate:'+this.msg);
        },
        updated: function () {
          this.$nextTick(function () {
            console.log('updated:'+this.msg);
          })
        },
        beforeDestroy:function(){
        //实例销毁之前调用。
            console.log('beforeDestroy:'+this.msg);
        },
        destroy: function(){
        //Vue实例销毁后调用。
            console.log('destroy:'+this.msg);
        }
    })
  • 相关阅读:
    父子组件双向通讯
    高德地图采坑实践之文本标记点击事件左半边不生效(已解决)
    高德地图 location字段控制台显示 为字符串类型 实际为对象
    允许长单词、数字、URL换行到下一行
    python 格式化输出详解(占位符:%、format、f表达式)——上篇 理论篇
    python tkinter实现俄罗斯方块 基础版
    python递归三战:Sierpinski Triangle、Tower of Hanoi、Maze Exploring
    python(pygame)滑稽大战(类似飞机大战) 教程
    编辑器测试-TinyMCE
    封装cookie localStorage sessionStorage
  • 原文地址:https://www.cnblogs.com/camille666/p/vue_instance_prop_lifecycle.html
Copyright © 2011-2022 走看看