首页 > 其他分享 >react 性能问题和优化

react 性能问题和优化

时间:2024-04-08 22:14:52浏览次数:20  
标签:性能 更新 react 16ms let 组件 import 优化

某个组件更新,子组件也会一起更新 react更新采用时间切片,vue则是依赖收集 执行更新操作为16ms,如果操过16ms,先暂停更新,让浏览器先渲染 时间切片时间是16ms,因为人眼刷新率约60帧,60hz为16ms 1.避免state改为同样的值(class用PureComponent,函数组件默认已经处理了) 2.处理子组件更新(class用PureComponent,函数组件用meno) 3.子组件的props对象/方法需要注意是否会更新,基本属性不会造成更新  

import styles from './index.less';
import { Button } from 'antd';
import React, { useCallback, useMemo, useState } from 'react';
import Son from './components/son'
let MemoSon = React.memo(Son)
const HomePage: React.FC = () => {
  let [num, setNum] = useState(0)
  // 更新num--index组件更新--重新定义obj和f1
  // let obj = {
  //   a: 1
  // }
  // function f1() {
  //   console.log(1)
  // }
  let obj = useMemo(() => {
    return {
      a: 1
    }
  }, [])
  let f1 = useCallback(() => {
    console.log(1)
  }, [])
  let a = '1'
  return (
    <div className={styles.container}>
      <h2>性能问题和优化</h2>
      <div>某个组件更新,子组件也会一起更新</div>
      <div>react更新采用时间切片,vue则是依赖收集</div>
      <div>执行更新操作为16ms,如果操过16ms,先暂停更新,让浏览器先渲染</div>
      <div>时间切片时间是16ms,因为人眼刷新率约60帧,60hz为16ms</div>
      <div>1.避免state改为同样的值(class用PureComponent,函数组件默认已经处理了)</div>
      <div>2.处理子组件更新(class用PureComponent,函数组件用meno)</div>
      <div>3.子组件的props对象/方法需要注意是否会更新,基本属性不会造成更新</div>
      <div>{num}</div>
      <Button type="primary" size="small" onClick={() => {
        setNum(num + 1)
      }}>修改数据</Button>
      {/* 会更新子组件 */}
      {/* <Son></Son> */}
      {/* 不会更新子组件 */}
      {/* <MemoSon></MemoSon> */}
      <MemoSon obj={obj} f1={f1} a={a}></MemoSon>
    </div>
  );
};



export default HomePage;

 

标签:性能,更新,react,16ms,let,组件,import,优化
From: https://www.cnblogs.com/ssszjh/p/18122754

相关文章

  • (文章复现)基于改进秃鹰算法的微电网群经济优化调度研究
    参考文献:[1]周辉,张玉,肖烈禧,等.基于改进秃鹰算法的微电网群经济优化调度研究[J].太阳能学报,2024,45(02):328-335.1.基本原理        微电网群由3个独立的微电网(microgrid,MG)组成,各微电网内部包含光伏(photovoltaic,PV)、风力发电机(windturbine,WT)、电动......
  • react 生命周期
    1.class组件初次挂载1.constructor2.getDerivedStateFromProps3.render4.componentDidMount 更新数据1.getDerivedStateFromProps2.shouldComponentUpdate3.render4.componentDidUpdate备注:1.PureComponent里不能写shouldComponentUpdate2.优化性能一般在shoul......
  • react中redux基本使用二
    1.action传参,用payload属性接收  <buttononClick={()=>dispatch(addNum(2))}>+2</button> 2.redux中异步操作,与同步类似,需要比同步多封装一个函数//使用RTK创建store,createSlice创建reducer的切片//使用RTK创建store,createSlice创建reducer的切片import......
  • 斜率优化 DP
    对于这样一类方程\(dp_i=\min\limits_{j=1}^{i-1}(dp_j-a_ic_j)\),其中\(a,c\)都为正整数且递增:如果直接计算,时间复杂度为\(\mathcal{O}(N^2)\)。使用斜率优化,可以将时间复杂度将为\(\mathcal{O}(N)\)。在学习本节之前,请先学会单调队列,还要知道在平面直角坐标系中,斜率越小......
  • Linux 性能分析工具大全
    vmstat--虚拟内存统计vmstat(VirtualMeomoryStatistics,虚拟内存统计)是Linux中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU等的整体情况进行监视。vmstat的常规用法:vmstatintervaltimes 即每隔 interval 秒采样一次,共采样 times 次,如果省略 times,则一直......
  • 2024年最新显卡天梯图来了!三种性能测试显卡排行榜
    2024年最新显卡天梯图来了!本次带来的显卡性能测试主要利用TimeSpy、TimeSpyExtreme、PortRoyal三种不同测试方法来展现最新显卡性能情况,有了显卡天梯图我们可以实时了解显卡市场,选择适合自己需求的显卡,对于不懂显卡性能的用户显卡天梯图无疑是最好入门和理解的。2024年最新......
  • react中redux基本使用
    1.安装 npminstall@reduxjs/toolkitreact-redux2.创建store目录 3.创建counterStore.js//使用RTK创建store,createSlice创建reducer的切片import{createSlice}from"@reduxjs/toolkit";constcounterSlice=createSlice({//需要一个配置对象作为参数,通过......
  • 免费试用!英智未来BayStone平台提供高性能算力服务
    英智未来BayStone人工智能公共服务平台聚焦全球高端算力资源,提供基于英伟达HGX1系列GPU算力服务,现面向所有政企和科研机构提供现货算力资源服务。点击申请试用   BayStone平台通过全球算力资源调度,帮助用户高效使用高端算力资源,为各类计算任务提供强大的......
  • android 内存优化
    什么是内存泄漏?如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费,这中情况就是内存泄漏。在Android开发中,一些不好的编程习惯会导致我们的开发的app存在内存泄漏的情况。下......
  • [React] Using key prop to reset component to avoid useEffect hook
    ThecomponentusinguseEffectwhichisnotnecessary:functionTopicEditor({selectedTopicId}){const[enteredNote,setEnteredNote]=useState('');constselectedTopic=DUMMY_TOPICS.find(topic=>topic.id===selectedTopicId)......