Browse Source

修改方法

pull/74/head
jingxun 2 years ago
parent
commit
5e1b3b47e3
  1. 8
      day16/note/lesson42_life_prender.md

8
day16/note/lesson42_life_prender.md

@ -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`方法却仅仅只在第一次挂载的时候被调用了。所以说当我们点击按钮的时候是触发的更新流程,而且子组件并没有被重新挂载。
当然这个环节过去了,后面的环节就是我们前两节课说过的了,这里就不在赘述了,大家有遗忘的可以去翻一下前两节课的内容。

Loading…
Cancel
Save