飞道的博客

Vue生命周期详解(图解)

521人阅读  评论(0)

程序员学习必备书籍推荐:

首先我们对Vue生命周期官方给出的图进行详细解释

vue生命周期详细图解

  
  1. 什么是生命周期?
  2. 简而言之:从生到死的过程,从Vue实例创建-运行-销毁的过程
  3. Vue实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、销毁等一系列过程
  4. 生命周期方法?
  5. Vue从生到死的过程中伴随着各种各样的事件,这些事件会自动触发一些方法.这些方法我们统称为生命周期方法
  6. 生命周期钩子 = 生命周期函数 = 生命周期事件
  7. 创建期间生命周期方法
  8. beforeCreate:
  9. created:
  10. beforeMount
  11. mounted
  12. 运行期间生命周期方法
  13. beforeUpdate
  14. updated
  15. 销毁期间的生命周期方法
  16. beforeDestroy
  17. destroyed

代码解释:


  
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Vue生命周期方法 </title>
  6. <!--引入vue框架-->
  7. <script src="js/vue.js"> </script>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <p> {{msg}} </p>
  12. </div>
  13. <script>
  14. let vm = new Vue({
  15. el: '#app',
  16. data:{
  17. msg: "IT程序员的日常"
  18. },
  19. methods:{
  20. say: function () {
  21. console.log( "IT程序员的日常");
  22. }
  23. },
  24. beforeCreate: function () {
  25. /*执行beforeCreate的时候,表示Vue刚刚出生,还没有任何内容,data/methods都没有初始化*/
  26. //console.log(this.msg);
  27. //this.say();
  28. //console.log(this.say);
  29. },
  30. created: function () {
  31. /*执行created的时候,表示Vue实例已经初始化好了部分内容,data/methods
  32. * 想在Vue实例中最早访问到data/methods,只有在这个方法才能访问
  33. */
  34. //console.log(this.msg);
  35. //this.say();
  36. // console.log(this.say);
  37. },
  38. beforeMount: function () {
  39. /*执行beforeMount,表示已经根据数据编译好了模板,但是还没有渲染到界面上*/
  40. // console.log(document.querySelector("p").innerText);
  41. // console.log(document.querySelector("p").innerHTML);
  42. },
  43. mounted: function () {
  44. /*执行mounted,表示已经根据数据编译好了模板,已经将模板有渲染到界面上,此时可以对界面进行其他操作了*/
  45. console.log( document.querySelector( "p").innerText);
  46. console.log( document.querySelector( "p").innerHTML);
  47. },
  48. beforeUpdate: function(){
  49. /*主要data中的数据发生了变化就会执行
  50. * 执行beforeUpdate时候,data的数据已经是最新的了,但是没有更新界面上的数据
  51. *
  52. * */
  53. // console.log(this.msg);
  54. // console.log(document.querySelector("p").innerText);
  55. // console.log(document.querySelector("p").innerHTML);
  56. },
  57. updated: function () {
  58. /*主要data中的数据发生了变化就会执行
  59. * 执行updated时候,data的数据已经是最新的了,界面上的数据也已经更新
  60. *
  61. * */
  62. console.log( this.msg);
  63. console.log( document.querySelector( "p").innerText);
  64. console.log( document.querySelector( "p").innerHTML);
  65. },
  66. beforeDestroy: function(){
  67. /*执行beforeDestroy的时候,表示Vue实例即将销毁,但是还未销毁,实例中的数据等都可以使用
  68. * 最后能使用Vue实例的地址
  69. * */
  70. },
  71. destroyed: function () {
  72. /*
  73. * 执行destroyed的时候,表示vue实例完全销毁,实例中的任何内容都不能被使用了
  74. * */
  75. }
  76. })
  77. </script>
  78. </body>
  79. </html>

 


转载:https://blog.csdn.net/FengyCoder/article/details/85227113
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场