好客租房85-组件性能优化(5纯组件)

我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷

.

前言

最好的种树是十年前 其次是现在 

面试题什么是纯组件(react)

React 有一个特点,那就是当父组件重新 render 的时候,无论传入子组件的 props 有没有变化,子组件都会重新 render。但是这种 render 很多情况下是没有必要的。

.

代码案例

父组件

import React, { Component } from 'react';
import Son from './Son';
class Father extends Component {
constructor(props) {
super(props);
this.state = { value:0 }
}
onClick=()=>{
this.setState({
value : this.state.value+1
})
}
render() {
console.log('我是爸爸组件')
return (<div>
<button onClick={this.onClick}>click me</button>
<Son value={this.state.value}/>
</div> );
}
}
export default Father;

子组件

import React, { Component,PureComponent } from 'react';
class Son extends Component {
constructor(props) {
super(props);
this.state = { }
}
render() {
console.log('我是儿子组件')
return (<div>
{this.props.value}
</div> );
}
}

子组件改成 PureComponent,即,当检测到 props 没有变化的时候,并不重新渲染。但是当这个点击事件开始触发的时候就会发生变化,这个是无法改变的 PureComponent是控制子组件状态不改变的方式之一

当第一次改变的时候 打印的值

//我是父亲组件  我是儿子组件 我是父亲组件  我是儿子组件

当点击事件的时候 打印的值

//我是父亲组件   我是父亲组件  我是父亲组件 我是父亲组件

posted @   前端导师歌谣  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示