Vue 生命周期

栏目: JavaScript · 发布时间: 5年前

内容简介:简单来说就是,钩子(生命周期函数)就好像是把人的出生到死亡分成一个个阶段,你肯定是在出生阶段起名字,而不会在成年或者死亡的阶段去起名字。或者说你想在出生阶段去约炮,也是不行的。组件也是一样,Vue 在实例化一个组件时会在特定的阶段调用特定的方法,调用的这个方法就叫钩子方法,比如 Vue 在实例化组件之初按顺序调用在调用

生命周期函数

生命周期函数就是 Vue 实例在某一个时间点会自动执行的函数

简单来说就是,钩子(生命周期函数)就好像是把人的出生到死亡分成一个个阶段,你肯定是在出生阶段起名字,而不会在成年或者死亡的阶段去起名字。或者说你想在出生阶段去约炮,也是不行的。组件也是一样,Vue 在实例化一个组件时会在特定的阶段调用特定的方法,调用的这个方法就叫钩子方法,比如 Vue 在实例化组件之初按顺序调用 beforeCreatedcreatedbeforeMountedmounted ,每个阶段组件内部的属性都是不一样的,比如 created 钩子时视图还没有渲染,就不能做一些 dom 操作。所以一般特定的钩子做特定的事,比如 ajax 获取数据就可以在 mounted 阶段,当然放在 createdbeforeMounted 也是可以的,因为 ajax 是异步的嘛, ajax 之后的回调会放在事件队列的尾部,此时实例化组件整个过程会在 ajax 回调之前执行完毕。所以 ajax 操作放在 createdmounted 里面都是可以的。

Vue 生命周期

在调用 new vue 时,Vue 会帮我们去创建一个 Vue 的实例,创建过程其实并不是像我们想的这么简单,首先它会初始化一些事件和生命周期相关的内容,

在初始化完成的时候,Vue 会自动的执行一个 beforeCreate 函数

之后会初始化一些外部的注入和一些双向绑定相关的事情,当这一部分完成后,基本上 Vue 的初始化就都完成了。在这个节点上又有一个 created 函数 被自动执行

let vm = new Vue({
    el:'#app',
    beforeCreate(){
        console.log('beforeCreate')     
    },
    created(){
        console.log('created')
    }
})

这个时候 Vue 的初始化已经基本结束了,然后它会询问一个条件:你这个 Vue 实例里是否有 el 这个选项

如果有就会询问是否有 template 这个选项:

  • 如果没有就会走右侧的这个分支,

    • 如果这个实例没有 templeate ,就会将 el 这个根节点当做模版,来进行渲染
  • 有就会走左侧的分支

    • template 作为模版去渲染

上面这一步走完后,并没有立即渲染,在渲染之前会执行 beforeMount 函数

当这个函数执行之后,模版结合数据最终生成的 Dom 元素,会被挂载到页面之上

当被挂载到页面之上,也就是 hello world 显示到页面之上,这时候 mounted 函数会被执行(页面挂载之后会执行)

let vm = new Vue({
    el:'#app',
    beforeCreate(){
        console.log('beforeCreate')
    },
    created(){
        console.log('created')
    },
    beforeMount(){
        console.log($el)                //<div id="app"></div>
        console.log('beforeMount')
    },
    mounted(){
        console.log($el)                //<div id="app">Hello world</div>
        console.log('mounted')
    }
})

这里也验证了 beforeMount 执行时,页面还没有被渲染, mounted 执行时,页面已经被渲染了

在往下是 beforeDestory (实例被销毁前执行), destoryed (实例销毁完成后执行)

当数据被改变时,会执行 beforeUpdate (数据被改变,还没渲染之前触发), updated (数据被改变,渲染完成后触发)


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机组成与设计硬件/软件接口

计算机组成与设计硬件/软件接口

[美] David A.Patterson、John L.Hennessy / 郑纬民 / 机械工业出版社 / 2007-4 / 75.00元

《计算机组成与设计硬件:软件接口》(原书第3版)是计算机组成的经典教材。全书着眼于当前计算机设计中最基本的概念,展示了软硬件间的关系,并全面介绍当代计算机系统发展的主流技术和最新成就。同以往版本一样,《计算机组成与设计硬件:软件接口》(原书第3版)采用MIPS处理器作为展示计算机硬件技术基本功能的核心。书中逐条指令地列举了完整的MIPS指令集,并介绍了网络和多处理器结构的基本内容。将CPU性能和程......一起来看看 《计算机组成与设计硬件/软件接口》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试