zoukankan      html  css  js  c++  java
  • React:如何阻止render重复渲染相同的数据

    前言

    记录react学习遇到的问题

    React.PureComponent

    react官方说明

        import React { PureComponent } from 'react'
        class Demo extends PureComponent{
            render() {
                console.log(“是否重复渲染?”)
                return (
                    { this.props.cont }
                )
            }
        }
    

    如果赋予 React 组件相同的 props 和 state,render() 函数会渲染相同的内容,那么在某些情况下使用 React.PureComponent 可提高性能。

    React.memo

    react官方说明

        import React { memo } from 'react'
        const memoDemo = memo(props => {
          return <div>my memoized component</div>
        })
    

    两者区别

    React.PureComponent 要依靠 class 才能使用。而 React.memo() 可以和 functional component 一起使用。

    注意:React.PureComponent和React.memo()默认仅用作对象的浅层比较
    

    React.memo 深层比较

        const areEqual = (prevProps,nextProps) => {
            let _prev = JSON.stringify(prevProps)
            let _next = JSON.stringify(nextProps)
            return _prev === _next
        }
        const memoDemo = React.memo((props) => {
            console.log('是否重复渲染')
            return (
                <div>测试重复渲染</div>
            )
        },areEqual)
    
  • 相关阅读:
    2
    网络对抗第四次实验恶意代码
    网络对抗第三次实验
    网络对抗第二次实验
    网络攻防第一次实验
    123
    数据结构
    第五次实验
    第二次实验
    Qt应用笔记
  • 原文地址:https://www.cnblogs.com/feiyu159/p/12929291.html
Copyright © 2011-2022 走看看