首页 > 其他 > 详细

高阶组件应用-生命周期劫持-查看渲染时间

时间:2021-08-13 14:40:55      阅读:26      评论:0      收藏:0      [点我收藏+]

 

技术分享图片

 

 

import React, { PureComponent } from ‘react‘
  
function withRenderTime(WrappedComponent){
    
    return class extends PureComponent{
        componentWillMount() { 
            this.beginTime = Date.now(); 
        } 
      
        componentDidMount(){
            this.endTime = Date.now();  
            const interval = this.endTime - this.beginTime;
            console.log(`${WrappedComponent.name}渲染时间:${interval}`);
        }

        render(){
            return <WrappedComponent {...this.props}/>
        }
    }
}

class Home extends PureComponent {
  
    render() {
        return <h2>Home</h2> 
    } 
}

// class Home extends PureComponent {
 
//     componentWillMount() {
//         this.beginTime = Date.now(); 
//     } 
 
//     render() {
//         return <h2>Home</h2> 
//     }

//     componentDidMount(){
//         this.endTime = Date.now();

//         console.log(this.endTime ,this.beginTime);
//         const interval = this.endTime - this.beginTime;
//         console.log(`home渲染时间:${interval}`);
//     }

// }
 
class About extends PureComponent {
    render() {
        return <h2>About</h2>  
    }
}
 

const TimeHome = withRenderTime(Home)
const TimeAbout = withRenderTime(About)

export default class App extends PureComponent {
    render() {
        return (
            <div> 
                <TimeHome  />   
                <TimeAbout  />   
            </div>
        )
    }
}

高阶组件应用-生命周期劫持-查看渲染时间

原文:https://www.cnblogs.com/eric-share/p/15135946.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!