React - PureComponent 会自动比较props的变化, 决定是否更新

import React, { Component } from 'react'
import ReactDOM from 'react-dom/client'
import { nanoid } from 'nanoid'
const root = ReactDOM.createRoot(document.getElementById('root'))
// PureComponent内部实现了shouldComponentUpdate, 会自动比较props的变化, 决定是否更新
class MyApp01 extends React.Component {
state = {
count: 101,
msg: 'Hello React, we are the world!',
list: [],
}
render() {
const { count, msg, list } = this.state
return (
<>
<div>
<h1>count: {count}</h1>
<h2>msg: {msg}</h2>
<h2>list: {list}</h2>
<button
onClick={() =>
this.setState({
count: count + 1,
})
}
>
点击修改count
</button>
<button
onClick={() =>
this.setState({
msg: msg + '~~',
})
}
>
点我修改msg
</button>
<button
onClick={() =>
this.setState({
list: [...list, 1],
})
}
>
点我修改list
</button>
<ChildCom count={count} msg={msg}></ChildCom>
</div>
</>
)
}
}
// // PureComponent内部实现了shouldComponentUpdate, 会自动比较props的变化, 决定是否更新
class ChildCom extends React.PureComponent {
render() {
const { count, msg } = this.props
return (
<>
<div>
Child - count: {count} msg: {msg}
</div>
</>
)
}
componentDidUpdate() {
console.log('检测到所以来的父组件数据发生更新了....')
}
}
const divNode = (
<div>
<MyApp01 />
</div>
)
root.render(divNode)
posted @   Felix_Openmind  阅读(59)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
*{cursor: url(https://files-cdn.cnblogs.com/files/morango/fish-cursor.ico),auto;}
点击右上角即可分享
微信分享提示