Vue的生命周期:
在理解vue生命周期前要把握它的三个重点: 建立-> 改变 -> 销毁
建立:
1.执行beforeCreatehtml
2.监控datavue
3.注册事件ios
4.执行createaxios
5.执行beforeMountapi
6.执行Mountedapp
注意:未来执行异步请求时必定要 将请求数据的方法写在beforeCreate事件以外,不然的话未来获得数据之后没法操做data中的属性 dom
改变:
改变data中的数据:异步
1.先执行beforUpdate 函数
2.从新生成虚拟domui
3.再执行update
销毁:
1.执行beforeDestroy
2.执行destroy
触发销毁条件: 从一个页面跳转到另外一个页面
应用: 清除内存中的这个vue对象
一.建立Vue时执行的钩子函数
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8 <script src="../axios.js"></script> 9 <script src="../vue2.4.4.js"></script> 10 </head> 11 12 <body> 13 <!-- 定义一个vue的管理区块,(MVVM中的View) --> 14 <div id="app"> 15 16 </div> 17 18 </body> 19 20 <script> 21 // 1 将路径的主机名和端口号统一设置 22 axios.defaults.baseURL = "http://157.122.54.189:9093"; 23 // 2 将axios加到vue原型对象中 24 Vue.prototype.$http = axios; 25 // 实例化vue对象(MVVM中的View Model) 26 new Vue({ 27 // vm控制的区块为id为app的div,此div中的全部vue指令都可以被vm解析 28 el:'#app', 29 data:{ 30 // 数据 (MVVM中的Model) 31 name:"小明" 32 }, 33 beforeCreate:function() { 34 console.log("01.beforeCreate :"+this.name); 35 36 }, 37 created:function() { 38 console.log("02.created :"+this.name); 39 // 改变this指向 40 _this = this; 41 this.$http.get("/api/getprodlist").then(function(result){ 42 var res = result.data; 43 _this.name = res.message[0].name; 44 }); 45 }, 46 beforeMount:function() { 47 console.log("03.beforeMount :"+this.name); 48 }, 49 mounted:function() { 50 console.log("04.mounted :"+this.name); 51 } 52 }) 53 </script> 54 </html>
二.更新数据时执行的钩子函数
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8 <script src="../axios.js"></script> 9 <script src="../vue2.4.4.js"></script> 10 </head> 11 12 <body> 13 <!-- 定义一个vue的管理区块,(MVVM中的View) --> 14 <div id="app"> 15 {{name}} 16 </div> 17 18 </body> 19 20 <script> 21 // 1 将路径的主机名和端口号统一设置 22 axios.defaults.baseURL = "http://157.122.54.189:9093"; 23 // 2 将axios加到vue原型对象中 24 Vue.prototype.$http = axios; 25 // 实例化vue对象(MVVM中的View Model) 26 var vm = new Vue({ 27 // vm控制的区块为id为app的div,此div中的全部vue指令都可以被vm解析 28 el:'#app', 29 data:{ 30 // 数据 (MVVM中的Model) 31 name:"小明" 32 }, 33 beforeCreate:function() { 34 //输出this.name是undifined 由于尚未加载 35 console.log("01.beforeCreate :"+this.name); 36 37 }, 38 created:function() { 39 console.log("02.created :"+this.name); 40 41 }, 42 beforeMount:function() { 43 console.log("03.beforeMount :"+this.name); 44 }, 45 mounted:function() { 46 console.log("04.mounted :"+this.name); 47 }, 48 beforeUpdate:function() { 49 console.log("05.beforeUpdate :"+this.name); 50 }, 51 updated:function() { 52 console.log("06.updated :"+this.name); 53 } 54 }) 55 </script> 56 </html>