在进行组件化项目开发的时候都会存在一个组件的生命周期概念,像Vue、React、小程序等等,无一例外,而通常情况组件的生命周期主要分成三个阶段,包括:创建、更新以及销毁阶段。
Vue的生命周期钩子函数主要包括:
我们通常在created()/mounted()进行发送ajax请求,启动定时器等异步任务,而在beforeDestory()做收尾工作,如: 清除定时器操作。
不过需要注意的是mounted生命周期钩子中并不代表界面已经渲染成功,因为 mounted 不会保证所有的子组件也都一起被挂载。如果你希望等到整个视图都渲染完毕,可以在 mounted 内部使用 vm.$nextTick。
Vue的生命周期钩子函数又分为了:单个组件生命周期、父子组件的生命周期、带缓存的路由组件生命周期等不同的状态,在不同的状态下所拥有的生命周期内容是不相同的。
单个组件生命周期
初始化:
更新:
销毁:
父子组件的生命周期
初始化:
beforeCreate
created
beforeMount
mounted
更新:
beforeUpdate
–child beforeUpdate
–child updated
updated
销毁:
带缓存的路由组件生命周期
初始化:
…
mounted
activated
路由离开
路由回来
捕获子组件错误的勾子
子组件执行抛出错误
阶段 | Vue | React | 小程序应用 | 小程序页面 |
---|---|---|---|---|
创建 | beforeCreate | constructor() | onLaunch | onLoad |
created | static getDerivedStateFromProps() | onShow | ||
beforeMount | render() | onReady | ||
mounted | componentDidMount() | |||
更新 | beforeUpdate | static getDerivedStateFromProps() | onShow | onShow |
updated | shouldComponentUpdate() | onHide | onHide | |
deactivated | render() | |||
activated | getSnapshotBeforeUpdate() | |||
componentDidUpdate() | ||||
销毁 | beforeDestroy | componentWillUnmount() | onUnload | |
destroyed | ||||
捕获错误 | errorCaptured | static getDerivedStateFromError() | onError | |
componentDidCatch() |