2026/5/21 16:28:13
网站建设
项目流程
酷站 房地产的网站设计参 案例,广东省建设厅官方网(官网),甜品售卖网站网页设计,公明做网站多少钱一、先给面试官一个总览#xff08;很重要#xff09;在 React 项目中#xff0c;我主要从 渲染控制、计算缓存、数据层、组件拆分 四个方面做过性能优化#xff0c;针对的都是列表、表格和图表等高频性能瓶颈场景。二、具体做过哪些优化#xff08;重点部分#xff09;1…一、先给面试官一个总览很重要在 React 项目中我主要从渲染控制、计算缓存、数据层、组件拆分四个方面做过性能优化针对的都是列表、表格和图表等高频性能瓶颈场景。二、具体做过哪些优化重点部分1️⃣ 列表 / 表格虚拟列表最硬核在性能查询和问题列表页面数据量可能上千条如果直接渲染会导致首屏和滚动卡顿。做法使用虚拟列表如react-window/ AntD 虚拟表格只渲染可视区域的 DOMFixedSizeList height{500} itemCount{list.length} itemSize{48} {Row} /FixedSizeList效果DOM 数量从几千降到几十滚动明显流畅这是面试官最认可的一点2️⃣ useMemo缓存计算结果你前面问过一些表头配置、筛选后的数据、图表数据处理计算量比较大如果每次渲染都重新计算会有性能浪费。const columns useMemo(() getColumns(config), [config]); const filteredList useMemo(() filterData(list, params), [list, params]);关键点只缓存计算结果依赖必须准确3️⃣ useCallback稳定函数引用减少子组件重渲染在表格和列表中我们会把事件处理函数传给子组件如果每次渲染函数都变化会导致子组件不必要的更新。const onRowClick useCallback((row) { setCurrent(row); }, []);配合export default React.memo(Row);4️⃣ React.memo避免不必要的组件更新对于纯展示组件比如表格行、图表容器我们使用React.memo包裹只有 props 变化才重新渲染。const Row React.memo(({ data }) { return div{data.name}/div; });5️⃣ 拆分组件缩小更新范围非常真实一开始筛选条件和列表在一个组件里任何筛选变化都会导致整个页面重渲染后来我们把筛选区、列表区、图表区拆成独立组件。原则状态就近管理减少顶层 state 数量6️⃣ 图表性能优化ECharts 场景图表数据量比较大我们做了几件事图表组件懒加载只有数据变化才重新 setOption数据变化时用useMemo预处理const chartOption useMemo(() buildOption(data), [data]);7️⃣ 接口 渲染配合优化不是只会 React我们也配合后端做了接口合并、分页和按需加载避免一次性拉取大量数据。三、你可以补一句“我怎么验证优化效果”加分优化过程中我们会通过 Chrome Performance、React DevTools Profiler 观察组件渲染次数和耗时确保优化是有效的。四、总结一句话收尾总体来说我在 React 中主要通过虚拟列表减少 DOM 数量useMemo / useCallback 控制渲染组件拆分缩小更新范围再结合接口层面的优化来保证在大数据量场景下页面依然流畅。五、30 秒极速版如果面试官催列表用虚拟列表复杂计算用 useMemo事件函数用 useCallback配合 React.memo 减少无效渲染再通过组件拆分和按需加载控制更新范围。