Vue基础精讲 —— 实例解析Vue的生命周期

本文深入解析Vue.js的生命周期,包括从创建到销毁的各个阶段。详细介绍了每个生命周期钩子的功能及应用场景,如beforeCreate、created、beforeMount、mounted等,帮助开发者理解何时执行DOM操作和数据更新。

结合官网Vue生命周期图例,实例生命周期钩子

Vue å®ä¾çå½å¨æ

// vue生命周期
import Vue from 'vue'
new Vue({
  el: '#root',
  template: '<div>{{text}}</div>',
  data: {
    text: 'text'
  },
  beforeCreate () {
    // 无法做dom节点操作
    console.log(this.$el, 'beforeCreate')
  },
  created () {
    // 无法做dom节点操作
    console.log(this.$el, 'created')
  },
  beforeMount () {
    console.log(this.$el, 'beforeMount')
  },
  mounted () {
    // 一般做dom相关操作在mounted // 跟数据相关操作可以在created,也可以在mounted
    console.log(this.$el, 'mounted')
  },
  beforeUpdate () {
    console.log(this, 'beforeUpdate')
  },
  updated () {
    console.log(this, 'updated')
  },
  activated () {
    console.log(this, 'activated')
  },
  deactivated () {
    console.log(this, 'deactivated')
  },
  beforeDestroy () {
    console.log(this, 'beforeDestroy')
  },
  destroyed () {
    console.log(this, 'destroyed')
  },
  render (h) {
    // throw new TypeError('render error')
    console.log(h, 'render function invoked')
    return h('div', {}, this.text)
  },
  renderError (h, err) {
    // 只开发环境使用
    // 在本组件出错时调用,若本组件调用的子组件报错,不会执行
    // 只关心本组件是否渲染成功
    return h('div', {}, err.stack)
  },
  errorCaptured () {
    // 正式环境可以使用
    // 可以向上冒泡,能监听本组件及其子组件所有报错信息
  }
})
// 若不指定el,执行beforeCreate、执行created
// mount 是将组件生成的HTML内容挂载到Dom上的的过程
// update 每次数据更新时执行
// destroy 组件销毁时执行
// activate 跟vue中原生组件keep-alive相关
// 注意this.$el的值
// mount 和 create 只调用一次
// mount在服务端渲染是不会被调用的,因为mount是跟dom操作相关,没有dom执行环境。服务端渲染会调用create

 指定el,执行结果如下:

不指定el,执行结果如下:

render function执行结果:

renderError执行结果:

与君共勉:再牛逼的梦想,也抵不住傻逼般的坚持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值