Skip to content

有了组件的基础,我们知道我们的UI就是有组件搭建起来,由一个根组件+各种组件组成

每个组件会有自己的生命周期,而各种组件组合起来的生命周期会有点绕,所以要来捋一下 如果写render函数的话,需要思考一下,这个render函数在什么时候会触发,平时写template时并不会注意到这点 实际上是整个组件的数据(prop、data)发生变化都会触发render,也就是update的生命周期

父子逐渐mounted,destroy顺序,我们把组件创建当成一个个数组项,并且会进出,那么这个数据结构就是栈 先进后出

父组件触发update生命周期(render),会触发子组件的update吗?

react会,那么vue是怎么做到的呢


知道各种生命周期的作用之后,我们反过来思考一下生命周期的本质是什么 我们都知道生命周期也叫钩子函数,在特定时机抛出来调用 这么一想,钩子函数其实就是一个被放出来自定义的回调函数吧 我们用js实现一下

js
class Vue{
  constor(config){
    this.init(config)
  }
  init() {
    setTimeout(()=>{
      config.cb1()
    },1000)
  }
}

const config = {
  cb1(){
    console.log('我是钩子函数1')
  }
}
new Vue(config)