最近开始瞎折腾Vue,感觉良好,因为之前折腾过React,先不说这两者的关系,现在只谈谈Vue的生命周期函数。在Vue的官方文档上给出了Vue生命周期的示意图,
该生命周期函数在初始化Events和Lifecycle后调用,该函数调用时el和data还未初始化,由以下代码可以推断出
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>生命周期函数</title> <script src="vue.js"></script> </head> <body> <div id="app">{{demo1}}</div> <script> let vm = new Vue({ el: '#app', data: { demo1: 'demo1', demo2: 'demo2' }, beforeCreate: function () { console.log('beforeCreate='+this.demo1+ '==' +this.$el); // beforeCreate=undefined==undefined el和data未被初始化 } }); </script> </body> </html>以下内容只给出JavaScript代码
根据Vue源码,在beforeCreate调用时完成了下列内容的初始化:initLifecycle(vm); initEvents(vm); initRender(vm);
该生命周期函数在初始化injections和reactivity后调用
let vm = new Vue({ el: '#app', data: { demo1: 'demo1', demo2: 'demo2' }, beforeCreate: function () { console.log('beforeCreate='+this.demo1+ '==' +this.$el); }, created: function () { console.log('created='+this.demo1+ '==' +this.$el); // created=demo1==undefined data已经初始化, el未初始化 }, });该函数执行时,下列内容初始化完成 initInjections(vm); // resolve injections before data/props initState(vm); initProvide(vm); // resolve provide after data/props