首页 > 其他 > 详细

Vue基础进阶 之 Vue生命周期与钩子函数

时间:2019-04-16 20:34:44      阅读:128      评论:0      收藏:0      [点我收藏+]

Vue生命周期

   

Vue生命周期:Vue实例从创建到销毁的过程,称为Vue的生命周期;

Vue生命周期示意图:https://cn.vuejs.org/v2/guide/instance.html#生命周期图示

Vue生命周期钩子:又称为Vue生命周期钩子方法/函数,是Vue为开发者提供的方法,我们可以通过这些方法在Vue实例创 建、挂载、数据更新、销毁等阶段做一些事情;

 

Vue的生命周期钩子函数

钩子函数的详情介绍网址:https://cn.vuejs.org/v2/guide/instance.html#实例生命周期钩子

beforeCreate与created钩子函数进行对数据的观测

示例效果:

技术分享图片

 

 该两个钩子函数的vue代码:

<script>
            
            window.onload= () =>{
                new Vue({
                    el:div,
                    data:{
                        msg:欢迎来到perfect*博客园!!!!
                        
                    },
                    
                    
                    beforeCreate(){
                        alert("1 beforCreate 创建Vue实例,但是未进行数据的观测"+this.msg);
                        
                        
                    },
                    
                    
                    created(){
                        alert("2 created创建Vue实例,进行数据的观测了"+this.msg);
                        
                        
                        
                    }
                    
                    
                    
                })
                
                
            }
        </script>

html:

<div >
            <input type="text" v-model="msg" /><br />
            <h1>{{msg}}</h1>
            
            
            
            
        </div>

 

beforeMount与mounted钩子函数进行对数据的挂载:

技术分享图片

 

 挂载实例的钩子函数代码:

beforeMount(){
                        alert("3 beforeMount挂载vue实例前"+this.msg+this.$refs.msgText.innerText);
                        
                    },
                    mounted(){
                         alert("4 mounted已经挂载vue实例了"+this.msg+this.$refs.msgText.innerText);
                        
                        
                    }

 

HTML:

<h1 ref=msgText>{{msg}}</h1>

 

beforeUpdate与updated钩子函数:

技术分享图片

 

 数据更新前与更新后的钩子函数:

beforeUpdate(){
                        alert("5 beforeUpdate数据更新前"+this.msg+this.$refs.msgText.innerText);
                        
                    },
                    updated(){
                         alert("6 updated数据更新后"+this.msg+this.$refs.msgText.innerText);
                        
                        
                    }

 

html:

<input type="text" v-model="msg" /><br />
        
            <h1 ref=msgText>{{msg}}</h1>
            

 

beforeDestroy与destroyed的钩子函数:

技术分享图片

 

 

由效果图可知当点击销毁后,数据就不能再进行观测了,由此观测不到数据的修改

 

销毁前与销毁后的钩子函数代码:

beforeDestroy(){
                        alert("7  beforeDestroy 销毁前");
                    },
                    destroyed(){
                        alert("8  destroyed 销毁后");
                        
                        
                    },
                    methods:{
                        onDestroy(){
                            
                            this.$destroy();
                        }

 

html:

<input type="text" v-model="msg" /><br />
            
            <h1 ref=msgText>{{msg}}</h1>
            <button @click="onDestroy">销毁</button>
            

 

以上所有钩子函数组成的代码:

技术分享图片
 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>Vue生命周期钩子函数</title>
 6         <script type="text/javascript" src="../js/vue.js" ></script>
 7         <script>
 8             
 9             window.onload= () =>{
10                 new Vue({
11                     el:div,
12                     data:{
13                         msg:欢迎来到perfect*博客园!!!!
14                         
15                     },
16                     
17                     
18                     beforeCreate(){
19                         alert("1 beforCreate 创建Vue实例,但是未进行数据的观测"+this.msg);
20                         
21                         
22                     },
23                     
24                     
25                     created(){
26                         alert("2 created创建Vue实例,进行数据的观测了"+this.msg);
27                         
28                         
29                         
30                     },
31                     
32                     beforeMount(){
33                         alert("3 beforeMount挂载vue实例前"+this.msg+this.$refs.msgText.innerText);
34                         
35                     },
36                     mounted(){
37                          alert("4 mounted已经挂载vue实例了"+this.msg+this.$refs.msgText.innerText);
38                         
39                         
40                     },
41                     beforeUpdate(){
42                         alert("5 beforeUpdate数据更新前"+this.msg+this.$refs.msgText.innerText);
43                         
44                     },
45                     updated(){
46                          alert("6 updated数据更新后"+this.msg+this.$refs.msgText.innerText);
47                         
48                         
49                     },
50                     beforeDestroy(){
51                         alert("7  beforeDestroy 销毁前");
52                     },
53                     destroyed(){
54                         alert("8  destroyed 销毁后");
55                         
56                         
57                     },
58                     methods:{
59                         onDestroy(){
60                             
61                             this.$destroy();
62                         }
63                         
64                         
65                         
66                     }
67                     
68                     
69                     
70                     
71                 })
72                 
73                 
74             }
75         </script>
76     </head>
77     <body>
78         <div >
79             <input type="text" v-model="msg" /><br />
80             <!--<h1>{{msg}}</h1>-->
81             <h1 ref=msgText>{{msg}}</h1>
82             <button @click="onDestroy">销毁</button>
83             
84             
85             
86             
87         </div>
88     </body>
89 </html>
钩子函数

 

Vue基础进阶 之 Vue生命周期与钩子函数

原文:https://www.cnblogs.com/jiguiyan/p/10713775.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!