React,移动设备开发图书

本文详细介绍了React组件的生命周期方法,包括初始化阶段、更新阶段及卸载组件时的关键钩子函数,如`shouldComponentUpdate`、`componentWillUpdate`和`componentDidUpdate`等。通过示例展示了如何控制组件更新,并解释了父组件重新渲染时子组件的生命周期流程。

//控制组件更新的“阀门”

shouldComponentUpdate() {

console.log(‘Count—shouldComponentUpdate’);

return true

}

//组件将要更新的钩子

componentWillUpdate() {

console.log(‘Count—componentWillUpdate’);

}

//组件更新完毕的钩子

componentDidUpdate() {

console.log(‘Count—componentDidUpdate’);

}

render() {

console.log(‘Count—render’);

const { count } = this.state

return (

当前求和为:{count}

点我+1

卸载组件

不更改任何状态中的数据,强制更新一下

)

}

}

//渲染组件

ReactDOM.render(, document.getElementById(‘test’))

// ------------------------------------------------------------------------------------------------

/**

父组件的重新render 子生命周期

**/

//父组件A

class A extends React.Component {

//初始化状态

state = { carName: ‘奔驰’ }

changeCar = () => {

this.setState({ carName: ‘奥拓’ })

}

render() {

return (

我是A组件

换车

)

}

}

//子组件B

class B extends React.Component {

//组件将要接收新的props的钩子,注意初始化的第一次这个钩子不执行

componentWillReceiveProps(props) {

console.log(‘B—componentWillReceiveProps’, props);

}

//控制组件更新的“阀门”

shouldComponentUpdate() {

console.log(‘B—shouldComponentUpdate’);

return true

}

//组件将要更新的钩子

componentWillUpdate() {

console.log(‘B—componentWillUpdate’);

}

//组件更新完毕的钩子

componentDidUpdate() {

console.log(‘B—componentDidUpdate’);

}

render() {

console.log(‘B—render’);

return (

我是B组件,接收到的车是:{this.props.carName}

)

}

}

//渲染组件

ReactDOM.render(, document.getElementById(‘test1’))

二、新生命周期


  1. 初始化阶段: 由ReactDOM.render()触发—初次渲染

  2. constructor()

  3. getDerivedStateFromProps

  4. render()

  5. componentDidMount() =====> 常用

一般在这个钩子中做一些初始化的事,例如:开启定时器、发送网络请求、订阅消息

  1. 更新阶段: 由组件内部this.setSate()或父组件重新render触发

  2. getDerivedStateFromProps

  3. shouldComponentUpdate()

  4. render()

  5. getSnapshotBeforeUpdate

  6. componentDidUpdate()

  7. 卸载组件: 由ReactDOM.unmountComponentAtNode()触发

  8. componentWillUnmount() =====> 常用

一般在这个钩子中做一些收尾的事,例如:关闭定时器、取消订阅消息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值