首页 > 其他分享 >React中性能优化的方案

React中性能优化的方案

时间:2022-11-22 23:44:41浏览次数:32  
标签:App 数据类型 React state num 组件 PureComponent 优化 性能

  • 减轻state

    • 在state中只存储和组件渲染有关的数据

    • 不做渲染的数据不放在state中,直接挂载在this上即可,比如定时器的id

import { Component } from "react";

class App extends Component {
state = {
  num: 0
}
componentDidMount() {
  // dom渲染完成
  // 开启定时器
  // timerid 存储到this中,而不是state中
  this.timerId = setInterval(() => { }, 1000)
}
componentWillUnmount() {
  // 卸载
  clearInterval(this.timerId)
}
render() {
  return (
    <div id="app">
    </div>
  )
}
}
export default App
  • 避免不必要的重新渲染

    • 使用shoundComponentUpdate钩子函数手动更新组件

    • 使用纯组件 PureComponent自动更新组件,使用方式和component一致

      PureComponent会分别对前后两次props和state进行浅层对比

      浅层比较:

      对于基本数据类型直接比较两个值是否相同

      引用数据类型比较的是地址,所以不要直接修改state中的引用数据类型,应该创建一个新的实例

import { PureComponent } from "react";

class App extends PureComponent {
state = {
  num: 0
}
render() {
  console.log('render')
  return (
    <div id="app">
      <button onClick={this.handleClick}>点我</button>
      <hr />
      <div>{this.state.num}</div>
    </div>
  )
}
handleClick = () => {
  this.setState({
    num: parseInt(Math.random() * 3)
  })
}
}
export default App
 

标签:App,数据类型,React,state,num,组件,PureComponent,优化,性能
From: https://www.cnblogs.com/toufuwqm/p/16916921.html

相关文章

  • React生命周期
    1.什么是生命周期生命周期就是组件从创建到销毁的过程生命周期钩子函数:生命周期的每个阶段总是伴随着一些方法的调用,这些方法就叫生命周期的钩子函数,生命周期的钩子......
  • React Server Components All In One
    ReactServerComponentsAllInOneReactServerComponentshttps://reactjs.org/blog/2020/12/21/data-fetching-with-react-server-components.htmlhttps://github.......
  • evenodd 优化记录
    目录1evenodd优化记录2机器3性能分析3.1perf报告3.2总结4优化记录4.1加大缓冲区evenodd优化记录正在参加比赛,要求写一个evenodd(一种校验算法,......
  • 性能测试知识科普(五):能力分层
    这是性能测试知识科普的第五篇文章。前面的文章分享了性能测试中的核心术语和指标、常用测试策略、压测工具选型以及性能需求分析的内容。写这篇文章的初衷是昨天有同学......
  • 数据库优化
    1选取最适用的字段属性数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。另外一个提高效......
  • SQL优化分析
    一、慢查询日志与分析什么是慢查询日志1MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query......
  • 基于遗传优化的车间订单拣选优化matlab仿真
    一、建模背景汽车生产需要进行上千个零件的组装,而主机厂采用柔性生产,对于每种零部件的需求呈现小批量,多频次的特点,而对于服务于主机厂的区域分拨中心,需要对主机厂的订单进......
  • React-初始
    最近需要接手别人c#那边组的一个项目新增页面,但他们的是React的框架,作为一名后端,没接触过,一脸懵逼。。。。。。说哈我的处理思路:一、先用相应的程序打开该项......
  • 前端性能优化方法
    什么是前端性能优化(what)?从用户访问资源到资源完整的展现在用户面前的过程中,通过技术手段和优化策略,缩短每个步骤的处理时间从而提升整个资源的访问和呈现速度。###为什么......
  • 性能实战之报告结论阶段
    性能场景执行完成后,便是测试报告阶段。测试报告阶段测试报告是统计场景执行并得出结论的阶段,结论包括生产配置参数与性能报告两部分。生产配置参数生产参数配置可能大......