博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue_声明周期
阅读量:6208 次
发布时间:2019-06-21

本文共 3573 字,大约阅读时间需要 11 分钟。

 

在vue2.0的时候,声明钩子发生了改变,具体有八个

  

{
{obj}}
{
{strings}}
let data = { obj:20 } let vue = new Vue({ el:'#app', data, beforeCreate: function () { console.group('beforeCreate 创建前状态===============》'); console.log("%c%s", "color:red" , "el : " + this.$el); //undefined console.log("%c%s", "color:red","data : " + this.$data); //undefined console.log("%c%s", "color:red","message: " + this.message) }, created: function () { console.group('created 创建完毕状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); //undefined console.log("%c%s", "color:red","data : " + this.$data); //已被初始化 console.log("%c%s", "color:red","message: " + this.message); //已被初始化 }, beforeMount: function () { console.group('beforeMount 挂载前状态===============》'); console.log("%c%s", "color:red","el : " + (this.$el)); //已被初始化 console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); //已被初始化 console.log("%c%s", "color:red","message: " + this.message); //已被初始化 }, mounted: function () { console.group('mounted 挂载结束状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); //已被初始化 console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); //已被初始化 console.log("%c%s", "color:red","message: " + this.message); //已被初始化 }, beforeUpdate: function () { console.group('beforeUpdate 更新前状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message); }, updated: function () { console.group('updated 更新完成状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message); }, beforeDestroy: function () { console.group('beforeDestroy 销毁前状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message); }, destroyed: function () { console.group('destroyed 销毁完成状态===============》'); console.log("%c%s", "color:red","el : " + this.$el); console.log(this.$el); console.log("%c%s", "color:red","data : " + this.$data); console.log("%c%s", "color:red","message: " + this.message) } });

  我们可以看到

    关于销毁

app.$destroy();

  

 

    针对钩子的使用 

    其实,我们可以把生命钩子当做一个回调函数,只是它是自动的,在特定情况下才回执行的函数

     注意:声明周期函数中不能使用 选项属性箭头函数

     对此,我们可以想,我们再页面还没创建时候,可以干点什么事情呢?

      loading......

    

     当页面销毁前,我们可以给出一个弹框,问是否要确定退出该页面或关闭浏览器等一系列操作等

 

 

 

总结:

生命周期钩子的一些使用方法:

beforecreate : 可以在这加个loading事件,在加载实例时触发 

created : 初始化完成时的事件写在这里,如在这结束loading事件,异步请求也适宜在这里调用
mounted : 挂载元素,获取到DOM节点
updated : 如果对数据统一处理,在这里写上相应函数
beforeDestroy : 可以做一个确认停止事件的确认框
nextTick : 更新数据后立即操作dom

参考:

   

 

转载于:https://www.cnblogs.com/itdansan/p/8638537.html

你可能感兴趣的文章
Struts2国际化
查看>>
循环Map方法
查看>>
nib和xib的区别
查看>>
== 和 is 的区别
查看>>
Selenium2Library+ride学习笔记
查看>>
OSPF RFC2740
查看>>
OBJECT_ID()的使用方法
查看>>
'800a0005' 图片上传出现写入文件失败的错误 -- 修改pload_5xsoft.inc
查看>>
[Egret][文档]遮罩
查看>>
sql的split()函数
查看>>
建造者模式
查看>>
hdu 1166 敌兵布阵 (线段树)
查看>>
突然想到了王自如
查看>>
Adding Flexcan driver support on Kernel
查看>>
ElastciSearch简单总结(笔记)
查看>>
14-angular.isDefined
查看>>
oracle高效分页查询总结
查看>>
Dubbo简单介绍及实例
查看>>
Apple Swift编程语言新手教程
查看>>
linux服务器加入windows域时报错Ticket expired
查看>>