React之PureComponent的用法

简介: React之PureComponent的用法

PureComponent有什么用?

一般组件的shouldComponentUpdate默认返回的是true,但是一旦父组件及时状态或props没有变化,也会造成子组件的render调用,这是很不合理的,我们可以让子组件继承自PureComponent来解决这个问题。

PureComponent的基本原理

  1. 重写了shouldComponentUpdate方法。
  2. 对组件的新/旧 state和props中的数据进行浅比较,如果没有变化则返回false,反之返回true.

PureComponent用法实例

import React, { Component,PureComponent } from 'react'
import ReactDOM from 'react-dom'
class App extends Component {
    state = {
        m1: 1
    }
    test1 = () => {
        this.setState(state => ({
            m1: state.m1 + 1
        }))
        // this.setState({})
    }
    render() {
        console.log('调用了A render: ');
        return (
            <div>
                <h1>A组件:m1={this.state.m1}</h1>
                <button onClick={this.test1}>A 测试1</button>
                <B m1={this.state.m1}/>
            </div>
        )
    }
}
class B extends PureComponent {
    state = {
        m2: 1
    }
    test2 = () => {
        this.setState({})
    }
    render() {
        console.log('调用了 B render: ');
        return (
            <div>
                <h1>B组件:m2={this.state.m2}, m1={this.props.m1}</h1>
                <button onClick={this.test2}>B 测试2</button>
            </div>
        )
    }
}
ReactDOM.render(<App />, document.querySelector('#root'));
复制代码

codeSandBox在线演示

相关文章
react-withRouter 用法
react-withRouter 用法
132 0
|
4月前
|
缓存 JavaScript 前端开发
react.js高级用法
【8月更文挑战第27天】react.js高级用法
45 2
|
4月前
|
前端开发 UED 开发者
React组件优化全攻略:深度解析让你的前端应用飞速运行的秘诀——从PureComponent到React.memo的彻底性能比较
【8月更文挑战第31天】在构建现代Web应用时,性能是提升用户体验的关键因素。React作为主流前端库,其组件优化尤为重要。本文深入探讨了React组件优化策略,包括使用`PureComponent`、`React.memo`及避免不必要的渲染等方法,帮助开发者显著提升应用性能。通过实践案例对比优化前后效果,不仅提高了页面渲染速度,还增强了用户体验。优化React组件是每个开发者必须关注的重点。
81 0
|
4月前
|
Web App开发 监控 前端开发
React 性能监测工具大揭秘!Chrome DevTools 高级用法来袭,让你的 React 应用性能飙升!
【8月更文挑战第31天】在前端开发中,React 框架虽简化了高效、交互性强的用户界面构建,但应用复杂性增加亦可能引发性能问题。此时,Chrome DevTools 凭其性能面板成为了优化应用性能的重要工具,能帮助开发者记录与分析加载时间、渲染及脚本执行等性能指标,定位并解决性能瓶颈。同时,其 React 开发者扩展工具允许实时监控组件状态变化,进一步提升性能。结合运用这些功能,将有助于打造流畅的用户体验。
118 0
|
4月前
|
前端开发 开发者
|
7月前
|
前端开发 UED
React 防抖与节流用法
React 防抖与节流用法
203 0
|
7月前
|
前端开发 JavaScript
react中refs的作用是什么?有几种用法?
react中refs的作用是什么?有几种用法?
|
7月前
|
前端开发
React Component和Purecomponent区别
React Component和Purecomponent区别
72 0
|
7月前
|
存储 前端开发 JavaScript
[React] useRef用法和特性
[React] useRef用法和特性
110 0
|
前端开发 JavaScript
React Hooks 用法详解3
React Hooks 用法详解