详解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 动态将数字金额转化为中文大写金额
May 14 Javascript
Three.js源码阅读笔记(光照部分)
Dec 27 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
Oct 21 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
Jul 20 Javascript
深入理解Angular4订阅(Subscribe)与取消
Nov 22 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
Apr 19 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
Sep 07 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
Sep 29 Javascript
4 种滚动吸顶实现方式的比较
Apr 09 Javascript
vue+web端仿微信网页版聊天室功能
Apr 30 Javascript
微信小程序云开发之模拟后台增删改查
May 16 Javascript
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
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格式输出文件var_export函数实例
2014/11/15 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
javascript 命名规则 变量命名规则
2010/02/25 Javascript
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
JavaScript中offsetWidth的bug及解决方法
2017/05/17 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
vue-router传参用法详解
2019/01/19 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
python利用beautifulSoup实现爬虫
2014/09/29 Python
python操作mysql中文显示乱码的解决方法
2014/10/11 Python
python分析作业提交情况
2017/11/22 Python
Python函数中不定长参数的写法
2019/02/13 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
Python实现粒子群算法的示例
2021/02/14 Python
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
如何利用cmp命令比较文件
2013/09/23 面试题
学生自我鉴定范文
2013/10/04 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
2019毕业论文致谢词
2019/06/24 职场文书
用Python生成会跳舞的美女
2022/01/18 Python