详解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 相关文章推荐
Add a Formatted Table to a Word Document
Jun 15 Javascript
IE8 chrome中table隔行换色解决办法
Jul 09 Javascript
PHPExcel中的一些常用方法汇总
Jan 23 Javascript
jQuery实现的AJAX简单弹出层效果代码
Nov 26 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
May 25 Javascript
jQuery简单验证上传文件大小及类型的方法
Jun 02 Javascript
vue制作加载更多功能的正确打开方式
Oct 12 Javascript
jquery实现拖动效果(代码分享)
Jan 25 Javascript
详解React之key的使用和实践
Sep 29 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
Apr 14 Javascript
vue webpack build资源相对路径的问题及解决方法
Jun 04 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
Aug 08 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 echo 输出字符串函数详解
2010/05/13 PHP
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
php事务处理实例详解
2014/07/11 PHP
PHP处理Json字符串解码返回NULL的解决方法
2014/09/01 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
JS检测浏览器开发者工具是否打开的方法详解
2020/10/02 Javascript
Ubuntu下安装PyV8
2016/03/13 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
python定位xpath 节点位置的方法
2019/08/27 Python
Visual Studio Code搭建django项目的方法步骤
2020/09/17 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
美国最大的团购网站:Groupon
2016/07/23 全球购物
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
Pureology官网:为染色头发打造最好的产品
2019/09/13 全球购物
高中自我评价范文
2014/01/27 职场文书
家长会演讲稿
2014/04/26 职场文书
计算机专业求职信
2014/06/02 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
先进个人材料怎么写
2014/12/30 职场文书
教师工作表现评语
2014/12/31 职场文书
员工辞退通知书
2015/04/17 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书