详解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 相关文章推荐
用正则获取指定路径文件的名称
Feb 27 Javascript
JavaScript 编写匿名函数的几种方法
Feb 21 Javascript
javascript动态向网页中添加表格实现代码
Feb 19 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
Dec 28 Javascript
JavaScript中的eval()函数使用介绍
Dec 31 Javascript
javascript解析xml实现省市县三级联动的方法
Jul 25 Javascript
JavaScript作用域示例详解
Jul 07 Javascript
Bootstrap CSS布局之按钮
Dec 17 Javascript
基于vue2.0实现简单轮播图
Nov 27 Javascript
JS实现网页时钟特效
Mar 25 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
Sep 16 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
Jan 06 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
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
广告代码静态化js通用函数
2007/05/09 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python随机生成数模块random使用实例
2015/04/13 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
农业资源与环境专业自荐信范文
2013/12/30 职场文书
检察官就职演讲稿
2014/01/13 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书
2016大学生国家助学贷款承诺书
2016/03/25 职场文书
员工工作心得体会
2019/05/07 职场文书
Vue操作Storage本地化存储
2022/04/29 Vue.js