首先,什么是生命周期?我个人的理解就是:一个事物从诞生到消亡的过程。
比如你 new Vue();Vue的生命周期已经开始了。
我们打开Vue.js的源码,当我们new Vue({});的时候,其实调用了下面这个方法:
虽然我们只new了一个Vue,但实际上它已经执行了很多个方法,比如initMixin(vue),stateMixin(vue)等等
我们可以利用Vue的生命周期,调用它的回调函数,换句话说,我们调用不同的回调函数,可以在Vue的生命周期中,执行我们设置的回调函数。是不是有点绕?哈哈,来看代码:
注:回调函数也叫生命周期函数或者钩子函数(callHook()是Vue的回调函数,hook英文意思“钩子”)
上面的initMixin方法的源码如下:
我们可以调用两个函数,分别是beforeCreate和created(分别在Vue创建前和创建后执行),我们一般会把一些网络请求放入created回调函数中。注意,不要把回调函数写在methods里面,回调函数是与methods同级的!!!代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<div>计数器:{{num}}</div>
</div>
</body>
</html>
<script>
const app = new Vue({
// el:document.querySelector('#app'),//传入的Element,和直接传入#app是一样的
el:"#app",
data:{
"num":0
},
methods:{
},
beforeCreate:function(){
console.log("我是创建前执行的");
},
created:function(){
console.log("我是创建后执行的");
}
});
</script>
执行结果:
这两个函数是vue内部调用的,换句话说,你可以在vue的生命周期的某一步,调用回调函数,在回调函数中写入你想要执行的代码,就可以在其生命周期内,执行你想要的代码。(callHook就是vue内部写的回调函数)
声明周期大概分为这些回调函数:beforeCreate created beforeMount mounted beforeUpdate updated beforeDestroy destroyed,看英文基本也能了解大概啥意思了吧?
借用网上的一张图: