vue对象的生命周期

从vue的创建到销毁会经过一系列的事件,这是vue对象的生命周期。

创建期间的生命周期函数

<div id="box">
    <h3 id="h3">{{msg}}</h3>   
</div>
var vm = new Vue({
    el: "#box",
    data: {
        msg: "hello"
    },
    methods: {
        show: function () {
            alert("执行了show函数");
        }       
    },  
    //vue被完整创建之前触发,内部还没有任何属性
    beforeCreate() {
        this.show();//无法调用show方法
    },
    //vue已完整创建出来(其属性已初始化)之后触发
    created: function () {
        this.show(); //能调用show方法
    },
    //vue已完整创建出来(其属性已初始化)但数据尚未插入到dom元素时触发
    beforeMount: function () {
        alert(document.getElementById("h3").innerText);//输出{{msg}}的字符表示
    },
    //vue已完整创建出来(其属性已初始化),数据已插入dom元素时触发
    mounted: function () {
        alert(document.getElementById("h3").innerText); //正确输出msg的值
    }
});

运行期间的生命周期函数

<div id="box">
    <h3 id="h3">{{msg}}</h3>
    <input type="button" value="OK" @click="changeData"/> //点击按钮,更改msg的值
</div>
var vm = new Vue({
    el: "#box",
    data: {
        msg:"hello"
    },
    methods: {     
        changeData: function () {
            this.msg = "world";
        }
    },    
    //在vue内部的data数据已经更新且页面上的数据尚未更新之前触发
    beforeUpdate: function () {          
        alert(document.getElementById("h3").innerText); //输出hello
        alert(this.msg); //输出world
    },
    //数据在vue内部和页面上都更新完成之后触发
    updated: function () {
        alert(document.getElementById("h3").innerText); //输出world
        alert(this.msg); //输出world
    }
});

销毁期间的生命周期函数

var vm = new Vue({
    el: "#box",  
    beforeDestroy: function () {
        //组件销毁前,此时vue的各个属性都可用
    },
    destroyed: function () {
        //组件销毁后,此时vue的各个属性不可用
    }
});

Javascript - 学习总目录

最新文章

  1. 安装hadoop+zookeeper ha
  2. Git &amp; GitHub
  3. java 线程安全不线程不安全
  4. Installation and Upgrading
  5. ios 检测应用程序升级问题
  6. android 布局如何支持多种不同屏幕尺寸
  7. [Angular Tutorial] 5-Filtering Repeaters
  8. Python中模块之shutil及zipfile&amp;tarfile的功能介绍
  9. 线性表 linear_list 顺序存储结构
  10. CentOS7操作Redis4.0
  11. 【转载】JVM系列一:JVM内存组成及分配
  12. 没有插件的sublime编辑器是没有灵魂的
  13. [Go] 编码规范
  14. 如何高效使用Google
  15. Node.js数据流Stream之Duplex流和Transform流
  16. spring boot(9)-mybatis关联映射
  17. Majority Number III
  18. 乱侃OOD
  19. PowerDesigner使用教程(转)
  20. mouseenter和hover的区别

热门文章

  1. 一个java实现的简单的4则运算器
  2. C#程序分析
  3. 侧边导航栏css示例
  4. Windows 创建计划任务 实现自动同步文件.
  5. 查看Jira 使用的H2数据库 数据结构以及内容的方法
  6. Java中String直接赋字符串和new String的区别 如String str=new String(&quot;a&quot;)和String str = &quot;a&quot;有什么区别?
  7. c# DataGridView绑定DataTable对象之后总会多一行
  8. Flume自定义Source、Sink和Interceptor(简单功能实现)
  9. 小记之while循环条件的操作位置
  10. luogu1081 [NOIp2012]开车旅行 (STL::multiset+倍增)