加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

前端性能优化不完全手册 【已更新至React】

发布时间:2019-04-14 10:35:48 所属栏目:优化 来源:Jerry谭金杰
导读:副标题#e# 性能优化是一门大学问,本文仅对个人一些积累知识的阐述,欢迎下面补充。 抛出一个问题,从输入url地址栏到所有内容显示到界面上做了哪些事? 1.浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址; 2.建立TCP连接(三次握手); 3.浏览

只要得到他们每一项值,只要有一个不一样就返回true,更新组件。

  •  定义组件时不适用React.component , 使用PureComponent代替,这样React机制会自动在shouldComponentUpdate中进行浅比较,决定是否更新。
  •  上面两条优化方案只进行浅比较,只对比直接属性的值,当然你还可以在上面加入this.props和prevprops的遍历比较,因为shouldComponentUpdate的生命周期函数自带这两个参数。如果props 和 state 的值比较复杂,那么可以使用下面这种方式去进行深比较。
  •     解决:
    •   保证每次都是新的值
    •   使用 immutable-js 库,这个库保证生成的值都是唯一的       
  1. var map1 = Immutable.Map({ a: 1, b: 2, c: 3 });  
  2.         var map2 = map1.set('b', 50);  
  3.         map1.get('b'); // 2  
  4.         map2.get('b'); // 50 
  •  总结:使用以上方式,可以减少不必要的重复渲染。
  •  React的JSX语法要求必须包裹一层根标签,为了减少不必要的DOM层级,我们使用Fragment标签代替,这样渲染时候不会渲染多余的DOM节点,让DIFF算法更快遍历。
  •  使用Redux管理全局多个组件复用的状态。
  •  React构建的是SPA应用,对SEO不够友好,可以选择部分SSR技术进行SEO优化。
  •  对Ant-design这类的UI组件库,进行按需加载配置,从import Button from 'antd' 的引入方式,变成import {Button} from antd的方式引入。(类似Babel7中的runtime和polifill的区别).
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读