Taro入门(三)——生命周期钩子函数

Taro代码的编写是继承于react的风格的,所以在生命周期钩子上Taro是继承了react的生命周期钩子函数的,在加上需要兼容各种小程序平台,所以应该还有小程序特点的生命周期钩子函数,理解的时候分为两类:react类、小程序类

react类:

我们按照执行顺序,大体如下:

constructor: 这是组件类的构造方法,在内部可以使用super返回所有的属性给当前组件,也可以在其中定义当前组件state的初始值。

严格来说,这个函数不算是一个钩子函数,只是一个构造器,只是为了方便理解所以将它列在这里

componentWillMount: 组件渲染前最后执行的方法

render: 组件渲染的方法,通常在组件中,该方法会返回一个jsx的模板字符串

componentDidMount: 组件渲染完成后最先执行的方法,我们通常在这个方法中进行一些状态的设置,比如:this.setState()

setState方法是一个异步的方法,如果我们需要在更新后就获取state的最新状态的话我们需要在setState的回调函数中获取,即:this.setState({变更状态}, () => {在这里获取最新的状态})

到这里的话,一个组件的基本渲染流程就已经结束了,接下来就是组件的更新了。

shouldComponentUpdate: 当state被修改时触发,接收两个参数,nextProps,nextState,变化后的属性和状态,该方法默认返回true,默认执行componentWillUpdate方法,如重写为返回false则不触发该方法,我们可以利用换个函数来提高render函数的性能

componentWillUpdate: 组件即将更新前最后执行的函数,state将要改变时触发

getSnapshotBeforeUpdate: 最新的渲染输出提交给DOM前执行的钩子函数,可以获取prop和state改变前的值,以返回值的形式将值作为参数传递给componentDidUpdate

componentDidUpdate:组件state更新完成后最先执行的函数

到这里的话组件state更新流程就结束了,这时又会触犯组件的渲染流程

componentWillReceiveProps: 当父组件中传递过来的属性值发生变更后触发,在组件初始化的时候不会触发,接收一个参数,变更后的属性对象

这个方法中无法初始化定义组件的属性值,我们可以通过state defaultProps = {}这样的方式,来定义属性的初始值

componentWillUnmount:组件被销毁前执行的钩子函数,在组件被销毁前最后触发

小程序类:

小程序类的就比较简单了,为了适配小程序的特点,只增加了两个钩子函数

componentDidShow:页面显示时触发

componentDidHide:页面隐藏时触发

你可能感兴趣的:(Taro入门(三)——生命周期钩子函数)