react 项目的性能优化有哪些?

1、react 模块化处理

  就是将react内容进行模块化划分,一个模块一个组件,react更新机制是组件重新更新

2、在react项目中更新数据,不要直接将 useState方法 更新方法放到模块当中:避免使用内联函数

  在编译模块的时候使用,react会将 模块=> vnode => 上面的所有处理方法,合成集中处理

  第一次自动触发,返回事件,这个事件是useState修改数据的方法(他是一个极其复杂的方法),就是我们点击事件处理方法,在模板编译的时候,给我们点击事件赋值一个方法,这个复杂的方法,让项目有性能损耗

3、Fragment <></>

  空的双标签 => 占位符

4、路由懒加载

  作用:就是这个项目首次加载项目,如果使用路由懒加载,这个项目就不会加载 用户没有进入过懒加载页面的代码,提高项目加载的速度

  语法:React.lazy 和 Suspense

5、组件的缓存, 使用React.memo

  React.memo 缓存组件,只有当这个缓存组件的数据发生改变了才会重新创建

  在工作中基本不用 useMemo,useCallback, 做react 性能优化

  用法:我们写了一个页面,页面进行模块化划分 => 如果没有就不用,如果有就需要

6、动态生成路由和动态生成侧边栏导航

  做了什么性能优化?

  我的项目 10个权限,对应的侧边栏导航是不同的,那他的路由信息也是不同,我们需要动态的生成,减少我们项目代码

7、将项目中一些大的本地图片,上传阿里云,七牛云,从而减少项目的体积

8、减少项目中的错误代码

9、列表渲染,添加key

  

react 项目的性能优化的更多相关文章

  1. react+redux渲染性能优化原理

    大家都知道,react的一个痛点就是非父子关系的组件之间的通信,其官方文档对此也并不避讳: For communication between two components that don't ha ...

  2. react 实用的性能优化方式

    react 组件渲染分为初始化渲染和更新渲染,当我们更新某个组件的时候,只是想关键路径上组件的render,但react的默认做法是调用所以组件的reder,再生成虚拟dom进行对比,如不变则不进行更 ...

  3. React + Reflux 渲染性能优化原理

    作者:ManfredHu 链接:http://www.manfredhu.com/2016/11/08/23-reactRenderingPrinciple 声明:版权所有,转载请保留本段信息,否则请 ...

  4. Web项目开发性能优化解决方案

    web开发性能优化---安全篇 1.ip验证 2.操作日志.安全日志.登录日志 3.SQL注入校验 4.权限管理 5.验证规范(前端.后端.数据库约束) 2014-10-29 08:04   2773 ...

  5. 记一次对 Laravel-permission 项目的性能优化

    我最近研究分析了在 SWIS上面创建的项目的性能.令人惊讶的是,最耗费性能的方法之一是优秀的  spatie/laravel-permission 包造成的. 经过查阅更多资料和研究,发现一个可能明显 ...

  6. react 首屏性能优化

    首屏优化点:1.加载包(bundle.js)文件的大小,越小,首屏渲染速度越快 (按需加载) 2.优先渲染用户直观看到的页面部分(懒加载) 技术点:react-loadable . react-laz ...

  7. 相当有用的react+redux渲染性能优化原理

    学习地址:http://foio.github.io/react-redux-performance-boost/

  8. vuejs项目性能优化总结

    在使用elementUI构建公司管理系统时,发现首屏加载时间长,加载的网络资源比较多,对系统的体验性会差一点,而且用webpack打包的vuejs的vendor包会比较大.所以通过搜集网上所有对于vu ...

  9. vue-cli3项目搭建配置以及性能优化

    项目初始化 注意:安装前请确保有安装node.js,并且node>=8.9 全局安装vue npm install -g @vue/cli 如果之前安装了vue旧版本,查看vue --versi ...

  10. vue项目性能优化总结

    在使用elementUI构建公司管理系统时,发现首屏加载时间长,加载的网络资源比较多,对系统的体验性会差一点,而且用webpack打包的vuejs的vendor包会比较大.所以通过搜集网上所有对于vu ...

随机推荐

  1. (工具) 交叉编译 gperftools及使用

    交叉编译gperftools及使用 sudo apt-get install kcachegrind # 导出为 callgrind 格式时需要 sudo apt install doxygen-la ...

  2. C温故补缺(一):数据类型和基本类型占位

    数据类型 基本类型:就是算术类型,包括整型和实型 枚举类型:一组离散的整数 void类型:无可用值类型 派生类型:指针(*),数组([]),结构体(struct),共用体(union),函数(fun( ...

  3. day24-服务器端渲染技术02

    服务器端渲染技术02 11.EL表达式 11.1EL表达式介绍 EL表达式全称:Expression Language,是表达式语言 EL表达式主要是代替jsp页面的表达式脚本 EL表达式输出数据时, ...

  4. 同一服务器部署多tomcat以及MyEclipse添加多tomcat

    tomcat有很多版本但他们的部署方式并不因为版本的不同而改变其的部署方式,操作者不必考虑此等原因.本人办公电脑使用的是tomcat7,家里自用的是6版本,这里就以6版本为例实现同一台机器上部署多to ...

  5. 除了 filter 还有什么置灰网站的方式?

    大家都知道,当一些重大事件发生的时候,我们的网站,可能需要置灰,像是这样: 当然,通常而言,全站置灰是非常简单的事情,大部分前端同学都知道,仅仅需要使用一行 CSS,就能实现全站置灰的方式. 像是这样 ...

  6. eval解析的函数传参 object array

    1 const fn = (...args) => { 2 console.log(...args) 3 } 4 5 const handleEval = (fnName,...args) =& ...

  7. Linux基础 文件和目录

    文件和目录 前言 本章讨论文件属性和文件系统内容.除了上一章讨论的普通文件,Linux的文件概念还包括:目录.设备等.在Linux系统中,文件的种类包括:普通文件.目录.符号链接.块设备.字符设备.管 ...

  8. 2022年7月14日,第四组 周鹏,认识JAVA的第二天(;´д`)ゞ(;д;)

    那天,我遇到了JAVA 然后,我失去了头发 无论我用了多少办法 还是放不下那个它 我哭的像个傻瓜 但也没能留住它 如果再有一次从来 我愿为它披上薄纱 愿它安稳有个家 可我终究还是失去了它 失去了原本为 ...

  9. Visual Studio 2022 MAUI NU1105(NETSDK1005) 处理记录

    故障说明 MAUI项目是日常使用的项目,一直都好好的 某一天修改了几行代码后,突然项目无法编译了,提示NU1105错误 从Git重新拉取一份之前的代码编译也是同样的错误,经过半天的查阅,尝试了几种方案 ...

  10. 体验一个前端视图层的mvvm的框架Knockoutjs(双向绑定,模板..)..解放您的双手,不再处理那么多的dom操作..快速实现视图层数据与UI的交互处理

    笔者之前对于类似前端展示的,可能都是自己开发js对象,集合外加dom事件进行处理..  近期看到相关资料,了解了Knockoutjs这个框架,下面来段代码: <script type=" ...