9.vue 生命周期。

1.生命周期:别名(生命周期回调函数、生命周期函数、生命周期钩子)Vue实例的生命周期。

  • 1-1.生命周期钩子:Vue在关键时刻帮我们调用的一些特殊名称的函数。
  • 1-2.生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写的。
  • 1-3.生命周期函数中的this指向是vm或组件实例对象。

2.生命周期内调用异步请求:

  • 2-1.可以在钩子函数created、beforeMount、mounted中进行调用,因为在这三个钩子函数中,data(created时已经完成)已经创建,可以将服务端端返回的数据进行赋值。
  • 2-2.在created钩子函数中调用异步请求,因为在created钩子函数中调用异步请求有以下优点:
    • ①能更快获取到服务端数据,减少页面 loading 时间。
    • ②SSR不支持 beforeMount 、mounted 钩子函数,所以放在 created 中有助于一致性。SSR顾名思义就是Server-Side Render,即服务端渲染。原理很简单,就是服务端直接渲染出 HTML 字符串模板,浏览器可以直接解析该字符串模版显示页面,因此首屏的内容不再依赖 Javascript 的渲染(CSR - 客户端渲染)。

3.生命周期:

  • 3-1.beforeCreate:组件实例被创建之初,组件的属性生效之前。此时无法访问 data 与 methods。
  • 3-2.created:组件实例已经完全被创建,属性也绑定,但是真实的DOM还没有生成,$el还不可用。(如果要调用 methods 中的方法,或者操作 data 中的数据,最早可以在这个阶段中操作)。数据观测(data observer)属性和方法的运算,watch/event事件回调都完成了配置。
  • 3-3.beforeMount:在挂载开始之前被调用:相关的render函数首次被调用。在内存中已经编译好了模板了,但是还没有挂载到页面中,此时,页面还是旧的。
  • 3-4.mounted:el被创建的vm.$el替换,并挂载到实例上去之后调用该钩子。(如果我们想要通过插件操作页面上的 DOM 节点,最早可以在和这个阶段中进行)。
  • 3-5.beforeUpdate:组件数据更新之前调用,发生在虚拟DOM打补丁之前。页面中的显示的数据还是旧的,data 中的数据是更新后的, 页面还没有和最新的数据保持同步。
  • 3-6.updated:组件数据更新之后。
  • 3-7.activeted:keep-alive专属,组件被激活时调用,但不在生命周期中。
  • 3-8.deactivated:keep-alive专属,组件被销毁时调用,但不在生命周期中。
  • 3-9.beforeDestory:组件销毁前调用,一般用做关闭定时器、取消订阅消息以及解绑自定义事件等(注意,这是销毁 Vue 实例,而经过 Vue 实例处理后的 DOM 原生操作是不会被处理的)。
  • 3-10.destoryed:组件销毁后调用。

4.父组件和子组件生命周期的钩子函数执行顺序:

  • 4-1.加载渲染过程:
    • ①挂载阶段:先执行父beforeCreate --> 父created --> 父beforeMount --> 子beforeCreate --> 子created --> 子beforeMount --> 子mounted–> 父mounted。
    • ②更新阶段:父beforeUpdate–>子beforeUpdate–>子updated–>父updated。
    • ③销毁阶段:父beforeDestory–>子beforeDestroy–>子destryed–>父destroyed。
  • 4-2.传递数据最好在父组件中的beforeCreate,created。

5.生命周期图:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值