来源:未知 时间:2024-05-11 23:01 作者:小飞侠 阅读:次
[导读] PureComponent 1. 什么是纯组件 纯组件会对组件输入数据进行浅层比较,如果当前输入数据和上次输入数据相同,组件不会重新渲染。 2. 什么是浅层比较 比较引用数据类型在内存中的引用...
PureComponent 1. 什么是纯组件 纯组件会对组件输入数据进行浅层比较,如果当前输入数据和上次输入数据相同,组件不会重新渲染。 2. 什么是浅层比较 比较引用数据类型在内存中的引用地址是否相同,比较基本数据类型的值是否相同。 3. 如何实现纯组件 类组件继承PureComponent类,函数组件使用memo方法 4. 为什么不直接进行diff操作,而是要先进行浅层比较,浅层比较难道没有性能消耗吗 和进行diff比较操作相比,浅层比较将消耗更少的性能。diff操作会重新遍历整颗virtualDOM树,而浅层比较只操作当前组件的state和props. 下面代码定义2个组件,一个普通组件,一个纯组件,在APP里面设置一个定时器,看下下面普通组件一直重新渲染,而纯组件则只渲染一次。 mport React, { Component, PureComponent } from 'react' class App extends Component { constructor() { super() this.state = { name: '张三' } } updateName() { setInterval(() => { this.setState({ name: '张三' }) }, 1000) } // 当组件挂载后 componentDidMount() { this.updateName() } render(state) { return <div> App {this.state.name} <ReguarComponent name={this.state.name} /> <PureComponentDemo name={this.state.name} /> </div> } } class ReguarComponent extends Component { render() { console.log('ReguarComponent') return <div>{this.props.name}</div> } } class PureComponentDemo extends PureComponent { render() { console.log('PureComponentDemo') return <div>{this.props.name}</div> } } 以上就是react性能优化之纯组件PureComponent全部内容,感谢大家支持自学php网。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com