详解Vue生命周期的示例


Posted in Javascript onMarch 10, 2017

一 vue的生命周期如下图所示(很清晰)

 详解Vue生命周期的示例

二 vue生命周期的栗子

 注意触发vue的created事件以后,this便指向vue实例,这点很重要

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>vue生命周期</title>
    <script src="../js/vue.js"></script>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  </head>
  <body>
    <div class="test" style="border: 1px black dashed;padding: 8px;">
      {{a}}
    </div>
    <div class="test2" style="border: 1px red solid;margin-top: 10px;padding: 8px;">
      我是内容二
    </div>
    <script type="text/javascript">
      var myVue = new Vue({
        el: ".test",
        data: {
          a: "我是内容,在控制台输入myVue.a=123456,可以改变我的值"
        },
        created: function () { 
          //在实例创建之后同步调用。此时实例已经结束解析选项,这意味着已建立:数据绑定,计算属性,方法,watcher/事件回调。
          //但是还没有开始 DOM 编译,$el 还不存在,但是实例存在,即this.a存在,可打印出来 。
          console.log("建立");
        },
        beforeCompile: function () {
          console.log("未开始编译");
        },
        compiled: function () { 
          //在编译结束后调用。此时所有的指令已生效,因而数据的变化将触发 DOM 更新。但是不担保 $el 已插入文档。
          console.log("编译完成");
        },
        ready: function () { 
          //在编译结束和 $el 第一次插入文档之后调用,如在第一次 attached 钩子之后调用。注意必须是由 Vue 插入(如 vm.$appendTo() 等方法或指令更新)才触发 ready 钩子。
          console.log("一切准备好了");
        },
        attached :function () { //myVue.$appendTo(".test2")暂时触发不了,不知道怎么解决
          //在 vm.$el 插入 DOM 时调用。必须是由指令或实例方法(如 $appendTo())插入,直接操作 vm.$el 不会 触发这个钩子。
          console.log("插入DOM成功");
        },
        detached :function () { //触发事件 myVue.$destroy(true),其中参数true控制是否删除DOM节点或者myVue.$remove()
          //在 vm.$el 从 DOM 中删除时调用。必须是由指令或实例方法删除,直接操作 vm.$el 不会 触发这个钩子。
          console.log("删除DOM成功");
        },
        beforeDestroy: function () { //触发方式,在console里面打myVue.$destroy();
          //在开始销毁实例时调用。此时实例仍然有功能。
          console.log("销毁前");
        },
        destroyed: function () {  //触发方式,在console里面打myVue.$destroy();其中myVue.$destroy(true)是删除DOM节点,会触发detached函数,但是实例仍然存在
          //在实例被销毁之后调用。此时所有的绑定和实例的指令已经解绑,注意是解绑不是销毁,所有的子实例也已经被销毁。
          console.log("已销毁");
        }
    });
    </script>
  </body>
</html>

将上面代码贴入后,在chrome控制台进行控制,刚开始载入页面的时候触发的事件是:

 详解Vue生命周期的示例

在控制台触发detached 事件如下(注意DOM已删除,但是实例仍然存在):

详解Vue生命周期的示例

 在控制台触发beforeDestroy和destroyed事件如下:(注意destroyed事件触发后,是解绑实例,不是删除实例)

详解Vue生命周期的示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery实现的类flash菜单效果代码
May 17 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
Sep 20 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
Sep 16 Javascript
jQuery固定浮动侧边栏实现思路及代码
Sep 28 Javascript
关于js函数解释(包括内嵌,对象等)
Nov 20 Javascript
详解vue-resource promise兼容性问题
Jun 20 Javascript
jQuery实现广告条滚动效果
Aug 22 jQuery
vue如何在自定义组件中使用v-model
May 14 Javascript
Element UI 自定义正则表达式验证方法
Sep 04 Javascript
Vue基础学习之项目整合及优化
Jun 02 Javascript
解决node终端下运行js文件不支持ES6语法
Apr 04 Javascript
vue结合el-upload实现腾讯云视频上传功能
Jul 01 Javascript
jQuery表格(Table)基本操作实例分析
Mar 10 #Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
Mar 10 #Javascript
微信小程序 出现47001 data format error原因解决办法
Mar 10 #Javascript
BootstrapValidator实现注册校验和登录错误提示效果
Mar 10 #Javascript
Bootstrap fileinput组件封装及使用详解
Mar 10 #Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
Mar 10 #Javascript
Node.js中.pfx后缀文件的处理方法
Mar 10 #Javascript
You might like
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
Zend Framework实现自定义过滤器的方法
2016/12/09 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
走出JavaScript初学困境—js初学
2008/12/29 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
Python程序设计入门(1)基本语法简介
2014/06/13 Python
Python验证企业工商注册码
2015/10/25 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
django rest framework使用django-filter用法
2020/07/15 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
Android笔试题总结
2014/11/29 面试题
诚信承诺书模板
2014/05/26 职场文书
2014年学生会工作总结
2014/11/07 职场文书
课外活动总结
2015/02/04 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
地道战观后感2000字
2015/06/04 职场文书