图解生命周期

lifecycle.png
Image_20200311123501.jpg

代码各个阶段

  1. var myVue=new Vue({
  2. el:"#app-8",
  3. data:{
  4. data:"aaaaa",
  5. info:"nono"
  6. },
  7. //数据没有 元素没有
  8. beforeCreate:function(){
  9. console.log("创建前========")
  10. console.log(this.data)
  11. console.log(this.$el)
  12. },
  13. //数据有 元素没有
  14. created:function(){
  15. console.log("已创建========")
  16. console.log(this.info)
  17. console.log(this.$el)
  18. },
  19. //数据有 元素有 虚拟dom
  20. beforeMount:function(){
  21. console.log("mount之前========")
  22. console.log(this.info)
  23. console.log(this.$el)
  24. },
  25. //数据有 元素有,真实dom
  26. mounted:function(){
  27. console.log("mounted========")
  28. console.log(this.info)
  29. console.log(this.$el)
  30. },
  31. beforeUpdate:function(){
  32. console.log("更新前========");
  33. },
  34. updated:function(){
  35. console.log("更新完成========");
  36. },
  37. beforeDestroy:function(){
  38. console.log("销毁前========")
  39. console.log(this.info)
  40. console.log(this.$el)
  41. },
  42. destroyed:function(){
  43. console.log("已销毁========")
  44. console.log(this.info)
  45. console.log(this.$el)
  46. }
  47. })

使用建议

  • beforeCreate :加载loading事件
  • created :结束loading,还做一些初始化,实现函数自执行
  • mounted :在这发起axios请求,拿回数据,配合路由钩子做一些事情
  • beforeDestory: destoryed :当前组件已被删除,清空相关内容
    综上:建议你吧页面进入出现加载框写在beforeCreate,请求接口数据写在created