Vue 中的声明周期函数
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <script src="../vue.js" type="text/javascript" charset="utf-8"></script> 7 </head> 8 <style type="text/css"> 9 v-cloak{ 10 display: none; 11 } 12 </style> 13 <body> 14 <div id="app"> 15 <input type="button" value="改变" @click="msg = 'No'"> 16 <h3 id="h3">{{ msg }}</h3> 17 </div> 18 <script type="text/javascript"> 19 var vm = new Vue({ 20 el: "#app", 21 data: { 22 msg: "ok" 23 }, 24 methods: { 25 show() { 26 console.log("执行了show方法"); 27 } 28 }, 29 beforeCreate() { //表示实例被完全创建出来之前,会执行它. 30 // console.log(this.msg); 31 // this.show(); 32 // 注意:在beforeCreate生命周期函数执行的时候, data 和 methods 中的数据都还没有被初始化 33 }, 34 created() { 35 // console.log(this.msg); 36 // this.show(); 37 //在 created 中, data 和 methods 都已经被初始化好了 38 //如果调用 methods 中的方法,或者操作 data 中的数据 ,最早,只能在 created 中 操作 39 }, 40 beforeMount() { //表示模板已经在内存中编译完成,但是尚未把模板渲染成HTML页面 41 // var a = document.getElementById("h3").innerText; 42 // console.log(a); 43 // 在beforeMount执行的时候,页面中的元素还没有被真正的替换过来,只是之前写的模板字符串 44 }, 45 mounted(){//表示,内存中的模板,已经真实的挂载到了页面中,用户已经可以看到渲染好的页面了 46 // var a = document.getElementById("h3").innerText; 47 // console.log(a); 48 // 注意:mounted 是 实例创建期间执行的最后一个生命周期函数,当执行完 mounted 就表示,实例 49 //被完全创建好了,此时,如果没有其他操作的话,这个实例 ,就静静的 躺在我们内存中 50 }, 51 52 53 54 //接下来是运行中的两个事件 55 beforeUpdate(){//这时候表示我们的界面还没有被修改 56 // var a = document.getElementById("h3").innerText; 57 // console.log("页面上" + a); 58 // console.log("data中" + this.msg); 59 //得出结论:当执行 beforeUpdate 的时候,页面中的显示的数据,还是旧的,此时, data 数据是 最新的,页面尚未和 最新的数据保持同步 60 }, 61 updated(){ 62 var a = document.getElementById("h3").innerText; 63 console.log("页面上" + a); 64 console.log("data中" + this.msg); 65 //updated 事件执行的时候,页面和 data 数据已经保持同步了,都是最新的 66 } 67 68 }) 69 </script> 70 </body> 71 </html>