当前位置: 首页 > news >正文

医美行业网站建设旅游品牌推广方案

医美行业网站建设,旅游品牌推广方案,公司网站建设项目的成本计划,购物型网站1. 是什么 React凭借virtual DOM和diff算法拥有高效的性能,但是某些情况下,性能明显可以进一步提高 在前面文章中,我们了解到类组件通过调用setState方法,就会导致render ,父组件一旦发生render渲染,子组件一定也会执…

1. 是什么

React凭借virtual DOM和diff算法拥有高效的性能,但是某些情况下,性能明显可以进一步提高
在前面文章中,我们了解到类组件通过调用setState方法,就会导致render ,父组件一旦发生render渲染,子组件一定也会执行render渲染

2. 如何做

在React中如何避免不必要的render中,我们了解到如何避免不必要的render来应付上面的问题,主要手段是通过shouldComponentUpdate、PureComponent 、React.memo ,这三种形式这里就不再复述
除此之外,常见性能优化常见的手段有如下:

  • 避免使用内联函数
  • 使用React Fragments避免额外标记
  • 使用Immutable
  • 懒加载组件
  • 事件绑定方式
  • 服务端渲染

2.1 避免使用内联函数

如果我们使用内联函数,则每次调用render函数时都会创建一个新的函数实例,如下:

import React from "react";
export default class InlineFunctionComponent extends React.Component {render() {return ( <div> <h1>Welcome RUI </h1> <input type="button" onClick={(e) => { this.setState({inputValue: e.target.value}) }} value="Click For Inline Function" /></div> ) } 
}

我们应该在组件内部创建一个函数,并将事件绑定到该函数本身。这样每次调用render时就不会创建单独的函数实例,如下:

import React from "react";
export default class InlineFunctionComponent extends React.Component {setNewStateData = (event) => {this.setState({inputValue: e.target.value}) }render() {return ( <div> <h1>Welcome Guest</h1> <input type="button" onClick={this.setNewStateData} value="Click For Inline Function" /></div> ) }   
}

2.2 使用React Fragments避免额外标记

用户创建新组件时,每个组件应具有单个父标签。父级不能有两个标签,所以顶部要有一个公共标签,所以我们经常在组件顶部添加额外标签div
这个额外标签除了充当父标签之外,并没有其他作用,这时候则可以使用fragement <> 其不会向组件引入任何额外标记,但它可以作为父级标签的作用

2.3 事件绑定方式

在事件绑定方式中,我们了解到四种事假绑定的方式
从性能方面考虑,在render方法中使用bind和render方法中使用箭头函数这两种形式在每次组件render的时候都会生成新的方法实例,性能欠缺
而constructor中bind事件与定义阶段使用箭头函数绑定这两种形式只会生成一个方法实例,性能方面会有所改善

2.4 使用Immutable

我们了解到使用Immutable可以给React应用带来性能的优化,主要体现在减少渲染的次数在做react性能优化的时候,为了避免重复渲染,我们会在shouldComponentUpdate()中做对比,当返回true执行render方法Immutable通过is方法则可以完成对比,而无需像一样通过深度比较的方式比较

2.5 懒加载组件

从工程方面考虑,webpack存在代码拆分能力,可以为应用创建多个包,并在运行时动态加载,减少初始包的大小
而在react中使用到了Suspense和lazy组件实现代码拆分功能,基本使用如下:

const johanComponent = React.lazy(() => import(/* webpackChunkName: "johanC
omponent" */ './myAwesome.component'));
export const johanAsyncComponent = props => ( <React.Suspense fallback={<Spinner />}> <johanComponent {...props} /></React.Suspense> 
);

2.6 服务端渲染

采用服务端渲染端方式,可以使用户更快的看到渲染完成的页面
服务端渲染,需要起一个node服务,可以使用express、koa等,调用react的renderToString方法,将根组件渲染成字符串,再输出到响应中

2.7 其他

除此之外,还存在的优化手段有组件拆分、合理使用hooks等性能优化手段…

3. 总结

通过上面初步学习,我们了解到react常见的性能优化可以分成三个层面:

  • 代码层面
  • 工程层面
  • 框架机制层面

通过这三个层面的优化结合,能够使基于react项目的性能更上一层楼

http://www.yayakq.cn/news/77532/

相关文章:

  • 肥城网站建设费用南阳网站制作哪家好
  • 青浦网站制作su35食品包装设计风格
  • 石景山网站建设服务手机网站页面如何制作
  • 长春建设工程管理中心网站网站做301还是302
  • 报纸做网站宣传费用西部数码网站正在建设中是什么意思
  • 商城网站代理系统济宁网站建设 中企动力临沂
  • 伪原创网站WordPress添加QQ咨询
  • wap建站后只能访问首页wordpress收款
  • 电子商务网站建设工具更改wordpress管理员用户名密码
  • 合肥网站建设制作价格怎么获取网站数据做统计数据
  • 网站建设进展报告做软件下载网站怎么赚钱
  • 企业网站的制作与维护wordpress在文章底部加上说明
  • 知乎 做照片好的网站大型网站开发用的技术
  • 外管局网站上做存量权益登记朝阳网站制作设计
  • as3 xml 网站模板 下载西安未央区网站建设
  • 食品网站建设策划天津营销类网站设计
  • 开不锈钢公司怎么做网站上海关键词排名优化价格
  • 商业网站的域名后缀是什么酒店网络营销方式有哪些
  • 拼多多网站分析有哪些做婚礼平面设计的网站
  • 物流网站公司运营设计是干什么的
  • 黑客怎么攻击网站介绍几个免费的网站
  • 登录官方网站宝山网站制作
  • 个人网站建站源码app开发企业在选择上一般优先开发
  • 网站开发项目视频开一个网站需要什么手续
  • 有没有做装修的大型网站而不是平台电子商务网站建设用什么软件
  • 网站建设公司发展前景做网站前台用什么软件
  • 门网站制作如何开一家网络推广公司
  • 福田官网上海企业网站优化公司
  • 千鸟云网站建设百度sem运营
  • wordpress防站教程电商运营需要掌握哪些知识