“shouldComponentUpdate”有什么作用,为什么它很重要?
shouldComponentUpdate 是 React 中的生命周期方法。此方法使组件仅在组件的状态或道具发生更改并且该更改将影响输出时才重新渲染。
当接收到新的道具或状态时,在渲染已安装的组件之前调用shouldComponentUpdate() 。
句法:
shouldComponentUpdate(nextProps, nextState)
参数:它接受两个名为nextProps和nextState的参数。 shouldComponent 通过将现有的 prop 和 state 与 nextProps 和 nextState 进行比较,返回是否返回组件的布尔值。
返回值:此方法默认返回 true,表示组件将重新渲染,如果返回 false,则不会调用 render()、componentWillUpdate() 和 componentDidUpdate() 方法。
创建反应应用程序:
第 1 步:使用以下命令创建一个 React 应用程序:
npx create-react-app foldername
第 2 步:创建项目文件夹(即文件夹名称)后,使用以下命令移动到该文件夹:
cd foldername
项目结构:它将如下所示。
实现:在 App.js 文件中写下以下代码。
App.js
import React, { Component } from 'react';
import "./styles.css";
class App extends Component {
constructor() {
super();
this.state = {
value: 0
}
}
shouldComponentUpdate(prevProps, prevState) {
if (prevState.value !== this.state.value) {
return true;
}
else {
return false;
}
}
render() {
console.log("Inside render");
return (
Component : {this.state.value}
);
}
}
export default App;
styles.css
.App {
font-family: sans-serif;
text-align: center;
width: 460px;
background: green;
}
样式.css
.App {
font-family: sans-serif;
text-align: center;
width: 460px;
background: green;
}
运行应用程序的步骤:从项目的根目录使用以下命令运行应用程序:
npm start
输出:现在打开浏览器并转到http://localhost:3000/ ,您将看到以下输出:
说明:以上是单击按钮时状态值发生变化的示例。在函数shouldComponentUpdate() 内部,我们正在检查当前状态值是否与之前不同。如果不同,则函数返回 true,这意味着组件将重新渲染。在控制台中,我们可以看到每次单击按钮都会出现“内部渲染”消息,因为组件会一次又一次地重新渲染。如果状态的当前值与之前相同,则 shouldComponentUpdate()函数将返回 false 并且组件不会重新渲染。
shouldComponentUpdate() 的重要性:
- 它有助于检查是否需要重新渲染组件。如果不需要重新渲染,则 shouldComponentUpdate 不渲染组件。例如,如果我们希望我们的组件在某些特定条件下不渲染,那么 shouldComponentUpdate 会很有用。
- 它有助于提高性能。
- 它增加了网站的响应能力和优化