详解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 相关文章推荐
javascript fullscreen全屏实现代码
Apr 09 Javascript
js 创建书签小工具之理论
Feb 25 Javascript
JQuery验证工具类搜集整理
Jan 16 Javascript
Javascript连接Access数据库完整实例
Aug 03 Javascript
js实现简洁大方的二级下拉菜单效果代码
Sep 01 Javascript
属于你的jQuery提示框(Tip)插件
Jan 20 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
May 15 Javascript
jQuery 获取多选框的值及多选框中文的函数
May 16 Javascript
通过原生JS实现为元素添加事件的方法
Nov 23 Javascript
详解webpack的配置文件entry与output
Aug 21 Javascript
基于vue-router 多级路由redirect 重定向的问题
Sep 03 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
Apr 10 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实现定时生成HTML网站首页实例代码
2008/11/20 PHP
php smarty函数扩展
2010/03/15 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
php长字符串定义方法
2012/07/12 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
php开发工具有哪五款
2015/11/09 PHP
CCPry JS类库 代码
2009/10/30 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
jquery隔行换色效果实现方法
2015/01/15 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
js获取url传值的方法
2015/12/18 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
two.js之实现动画效果示例
2017/11/06 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
js实现秒表计时器
2019/12/16 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
Python入门篇之正则表达式
2014/10/20 Python
在Python中使用元类的教程
2015/04/28 Python
python字典排序实例详解
2015/05/20 Python
python使用socket 先读取长度,在读取报文内容示例
2019/09/26 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
猫咪家具:CatsPlay
2018/11/03 全球购物
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
结婚保证书(卖身契)
2015/02/26 职场文书
教师节简报
2015/07/20 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书