vue 生命钩子周期之理解
对于vue的初学者来说,理解vue的生命钩子周期是很有必要的。什么是生命钩子周期呢,顾名思义就是 “实例初始化” 到 “实例被销毁” 的过程。
理解vue的生命钩子周期,我们就可以更好的在项目中运用,清楚明白在页面的初始化、页面的渲染、页面的销毁这些过程中所做的事情。
详细资料请参考:https://cn.vuejs.org/v2/api/#beforeCreate
<script> export default{ name:"test", data(){ return{ } }, beforeCreate(){ //在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。 console.log(1); }, created(){ //在实例创建完成后被立即调用。 //在这一步,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。 //然而,挂载阶段还没开始,$el 属性目前不可见。 console.log(2) }, beforeMount(){ //在挂载开始之前被调用:相关的 render 函数首次被调用。 //该钩子在服务器端渲染期间不被调用。 console.log(3) }, mounted(){ //el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。 console.log(4) this.showExample(); //调用showExample方法 var _this = this; //mounted 不会承诺所有的子组件也都一起被挂载。 //如果你希望等到整个视图都渲染完毕,可以用 vm.$nextTick 替换掉 mounted //该钩子在服务器端渲染期间不被调用。 this.$nextTick(function () { // 这里的代码将会在整个视图都渲染完毕后再执行(包括子组建) _this.showExample() //调用showExample方法 }) }, beforeUpdate(){ //数据更新时调用,发生在虚拟 DOM 打补丁之前。 //这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器。 //该钩子在服务器端渲染期间不被调用,因为只有初次渲染会在服务端进行。 console.log(5) }, updated(){ //由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。 //当这个钩子被调用时,组件 DOM 已经更新 console.log(6) //updated 不会承诺所有的子组件也都一起被重绘。 //如果你希望等到整个视图都重绘完毕,可以用 vm.$nextTick 替换掉 updated //该钩子在服务器端渲染期间不被调用。 this.$nextTick(function () { // Code that will run only after the // entire view has been re-rendered }) }, beforeDestroy(){ //实例销毁之前调用。在这一步,实例仍然完全可用。 //该钩子在服务器端渲染期间不被调用。 console.log(7) }, destroyed(){ //Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。 //该钩子在服务器端渲染期间不被调用。 console.log(8) }, methods:{ //这是名为showExample的一个方法/函数 showExample(){ console.log("example") } } } </script>