详解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 相关文章推荐
JScript中的&quot;this&quot;关键字使用方式补充材料
Mar 08 Javascript
JavaScript设计模式之外观模式介绍
Dec 28 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
Mar 31 Javascript
javascript事件委托的用法及其好处简析
Apr 04 Javascript
Angular设置title信息解决SEO方面存在问题
Aug 19 Javascript
bootstrapValidator表单验证插件学习
Dec 30 Javascript
jQuery实现的简单图片轮播效果完整示例
Feb 08 jQuery
解决使用vue.js路由后失效的问题
Mar 17 Javascript
vue中eslintrc.js配置最详细介绍
Dec 21 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
Sep 06 Javascript
jQuery三组基本动画与自定义动画操作实例总结
May 09 jQuery
JS字符串和数组如何实现相互转化
Jul 02 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/07/03 PHP
php中使用__autoload()自动加载未定义类的实现代码
2013/02/06 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
基于jquery的图片懒加载js
2010/06/30 Javascript
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
解析Json字符串的三种方法日常常用
2018/05/02 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
js实现漂亮的星空背景
2019/11/01 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
python3实现高效的端口扫描
2019/08/31 Python
Python接口自动化判断元素原理解析
2020/02/24 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
HTML5中的拖放实现详解
2017/08/23 HTML / CSS
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
《白鹅》教学反思
2014/04/13 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
CocosCreator如何实现划过的位置显示纹理
2021/04/14 Javascript