Vue js 的生命周期

用Vue框架,熟悉它的生命周期可以让开发更好的进行。

首先先看看官网的图,详细的给出了vue的生命周期:


它可以总共分为8个阶段:

  • beforeCreate(创建前),
实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。

  • created(创建后),
实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。

  • beforeMount(载入前),
在挂载开始之前被调用:相关的 render 函数首次被调用。

  • mounted(载入后),
el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted被调用时 vm.$el 也在文档内。

  • beforeUpdate(更新前),
数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。 你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。

  • updated(更新后),

由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。

当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态,因为这可能会导致更新无限循环。

该钩子在服务器端渲染期间不被调用。

  • beforeDestroy(销毁前),
实例销毁之前调用。在这一步,实例仍然完全可用。

  • destroyed(销毁后)
Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。 该钩子在服务器端渲染期间不被调用。

然后用一个实例的demo 来演示一下具体的效果:

<div id=app>{{a}}</div>

<script>

var myVue = new Vue({
el: "#app", 
data: {
    a: "Vue.js"
},         

 beforeCreate: function() { 
         console.log("创建前") 
         console.log(this.a) 
         console.log(this.$el)  
},         

 created: function() {
         console.log("创建之后");  
         console.log(this.a)  
         console.log(this.$el)  
},         

 beforeMount: function() {  
         console.log("mount之前")  
         console.log(this.a) 
         console.log(this.$el) 
},          

mounted: function() {  
         console.log("mount之后")
         console.log(this.a)
         console.log(this.$el)
},          

beforeUpdate: function() {
         console.log("更新前");
         console.log(this.a)
         console.log(this.$el)
},          

updated: function() {
         console.log("更新完成");
         console.log(this.a);
         console.log(this.$el);
},          

beforeDestroy: function() { 
         console.log("销毁前");
         console.log(this.a)
         console.log(this.$el)
         console.log(this.$el)
},          

destroyed: function() {
         console.log("已销毁");
         console.log(this.a)
         console.log(this.$el)
}
});
</script>


运行后,查看控制台,

得到这个:




然后再methods 里面添加一个change方法:

<div id=app>{{a}}
    <button v-on:click="change">change</button>
</div>

点击按钮之后出现的是:


这就是vue的生命周期,很简单吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值