详解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 相关文章推荐
URL编码转换,escape() encodeURI() encodeURIComponent()
Dec 27 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
May 12 Javascript
node.js中的console.assert方法使用说明
Dec 10 Javascript
JavaScript实现列表分页功能特效
May 15 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
Nov 06 Javascript
详解JavaScript基于面向对象之创建对象(1)
Dec 10 Javascript
AngularJS入门教程之Cookies读写操作示例
Nov 02 Javascript
js实现一个可以兼容PC端和移动端的div拖动效果实例
Dec 09 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
Jan 25 Javascript
使用vue自定义指令开发表单验证插件validate.js
May 23 Javascript
微信小程序实现动态列表项的顺序加载动画
Jul 25 Javascript
Vue中错误图片的处理的实现代码
Nov 07 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实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
PHP对象Object的概念 介绍
2012/06/14 PHP
php开发文档 会员收费1期
2012/08/14 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
详解Angular5 服务端渲染实战
2018/01/04 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
Python中的fileinput模块的简单实用示例
2015/07/09 Python
开源Web应用框架Django图文教程
2017/03/09 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
土木工程专业个人求职信
2013/12/05 职场文书
计算机专业毕业生求职信分享
2013/12/24 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
家长对孩子的寒假评语
2015/10/09 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python