|
|
@ -161,7 +161,7 @@ class Test extends React.Component { |
|
|
|
|
|
|
|
![image-20211230153209535](https://file.lynchow.com/image-20211230153209535.png) |
|
|
|
|
|
|
|
正如我们的预期一样,`Test`组件中的`componentWillReceiveProps`方法被调用了。或许大家对这一步会有些不理解,我更新了 `state`,导致父组件重新调用`render`方法,那么这一次`render`执行到`Test`组件标签的时候,难道不是挂载吗?那我们在`Test`组件中加上`componentWillMount`方法来测试一下。 |
|
|
|
正如我们的预期一样,`Test`组件中的`componentWillReceiveProps`方法被调用了。或许大家对这一步会有些不理解,我更新了 `state`,导致父组件重新调用`render`方法,那么这一次`render`执行到`Test`组件标签的时候,难道不是挂载吗?那我们在`Test`组件中加上`componentDidMount`方法来测试一下。 |
|
|
|
|
|
|
|
```jsx |
|
|
|
class CountSub extends React.Component {...} |
|
|
@ -169,7 +169,7 @@ class Test extends React.Component { |
|
|
|
componentWillReceiveProps(){ |
|
|
|
console.log("Test-componentWillReceiveProps"); |
|
|
|
} |
|
|
|
componentWillMount(){console.log("Test-componentWillMount");} |
|
|
|
componentDidMount(){console.log("Test-componentDidMount");} |
|
|
|
|
|
|
|
render() {...} |
|
|
|
} |
|
|
@ -179,11 +179,11 @@ class Test extends React.Component { |
|
|
|
|
|
|
|
![image-20211230155027950](https://file.lynchow.com/image-20211230155027950.png) |
|
|
|
|
|
|
|
第一次挂载,控制台打印出我们的`componentWillMount`被调用了,那么当我们点击按钮是不是改变了 `state`?那么`CountSub`是不是就要重新调用`render`方法?那么`render`方法中的`Test`组件标签是不是就要被重新执行一次?这个时候如果`Test`组件是被重新挂载了,那么是不是会再打印一次`Test-componentWillMount`?那么我们看结果吧: |
|
|
|
第一次挂载,控制台打印出我们的`componentDidMount`被调用了,那么当我们点击按钮是不是改变了 `state`?那么`CountSub`是不是就要重新调用`render`方法?那么`render`方法中的`Test`组件标签是不是就要被重新执行一次?这个时候如果`Test`组件是被重新挂载了,那么是不是会再打印一次`Test-componentDidMount`?那么我们看结果吧: |
|
|
|
|
|
|
|
![image-20211230155346118](https://file.lynchow.com/image-20211230155346118.png) |
|
|
|
|
|
|
|
我点击了 12 次按钮,`componentWillReceiveProps`方法被调用了 12 次,而`componentWillMount`方法却仅仅只在第一次挂载的时候被调用了。所以说当我们点击按钮的时候是触发的更新流程,而且子组件并没有被重新挂载。 |
|
|
|
我点击了 12 次按钮,`componentWillReceiveProps`方法被调用了 12 次,而`componentDidMount`方法却仅仅只在第一次挂载的时候被调用了。所以说当我们点击按钮的时候是触发的更新流程,而且子组件并没有被重新挂载。 |
|
|
|
|
|
|
|
当然这个环节过去了,后面的环节就是我们前两节课说过的了,这里就不在赘述了,大家有遗忘的可以去翻一下前两节课的内容。 |
|
|
|
|
|
|
|