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

区块链做网站都有哪些内容呢线上运营的5个步骤

区块链做网站都有哪些内容呢,线上运营的5个步骤,做网站需要哪些软件,内蒙建设工程信息网站React 组件性能优化的核心是减少渲染真实 DOM 节点的频率,减少 Virtual DOM 比对的频率。 1. 组件卸载前进行清理操作 window 注册的全局事件, 以及定时器 useEffect(()>{return ()>{// do somethingclearTimeout(tiemr)window.removeEventListener(xxx, c…

React 组件性能优化的核心减少渲染真实 DOM 节点的频率,减少 Virtual DOM 比对的频率。

1. 组件卸载前进行清理操作

window 注册的全局事件, 以及定时器

useEffect(()=>{return ()=>{// do somethingclearTimeout(tiemr)window.removeEventListener('xxx', calback)}
},[])

2. PureComponent

  1. 什么是纯组件
    纯组件会对组件输入数据进行浅层比较,如果当前输入数据和上次输入数据相同组件不会重新渲染
  2. 什么是浅层比较
    比较引用数据类型在内存中的引用地址是否相同,比较基本数据类型值是否相同
  3. 如何实现纯组件
    类组件继承 PureComponent 类,函数组件使用 memo 方法
  4. 为什么不直接进行 diff 操作, 而是要先进行浅层比较,浅层比较难道没有性能消耗吗?
    和进行 diff 比较操作相比,浅层比较将消耗更少的性能。diff 操作会重新遍历整颗 virtualDOM 树, 而浅层比较只操作当前组件的 state 和 props。

3. shouldComponentUpdate

纯组件只能进行浅层比较,要进行深层比较,使用 shouldComponentUpdate,它用于编写自定义比较逻辑。

返回 true 重新渲染组件,返回 false 阻止重新渲染。

函数的第一个参数为 nextProps, 第二个参数为 nextState.

 shouldComponentUpdate(nextProps, nextState) {if (this.state.name !== nextState.name || this.state.age !== nextState.age) {return true}return false}

4. React.memo

为 memo 传递比较逻辑

使用 memo方法自定义比较逻辑,用于执行深层比较。

比较函数的第一个参数为上一次的 props, 比较函数的第二个参数为下一次的 props, 比较函数返回 true, 不进行渲染, 比较函数返回 false, 组件重新渲染.

    const ShowPersonMemo = memo(ShowPerson, comparePerson)function comparePerson(prevProps, nextProps) {if (prevProps.person.name !== nextProps.person.name ||prevProps.person.age !== nextProps.person.age) {return false}return true}

5. 使用组件懒加载

使用组件懒加载可以减少 bundle 文件大小, 加快组件呈递速度.

  1. 路由组件懒加载
 import React, { lazy, Suspense } from "react"import { BrowserRouter, Link, Route, Switch } from "react-router-dom"// 打包时生成对应名字的chunkconst Home = lazy(() => import(/* webpackChunkName: "Home" */ "./Home"))const List = lazy(() => import(/* webpackChunkName: "List" */ "./List"))function App() {return (<BrowserRouter><Link to="/">Home</Link><Link to="/list">List</Link><Switch>// 组件未加载完成展示loading<Suspense fallback={<div>Loading</div>}><Route path="/" component={Home} exact /><Route path="/list" component={List} /></Suspense></Switch></BrowserRouter>)}export default App
  1. 根据条件进行组件懒加载

    适用于组件不会随条件频繁切换

    import React, { lazy, Suspense } from "react"function App() {let LazyComponent = nullif (true) {LazyComponent = lazy(() => import(/* webpackChunkName: "Home" */ "./Home"))} else {LazyComponent = lazy(() => import(/* webpackChunkName: "List" */ "./List"))}return (<Suspense fallback={<div>Loading</div>}><LazyComponent /></Suspense>)
    }export default App
    

6. 使用 Fragment 避免额外标记

7. 不要使用内联函数定义

8. 在构造函数中进行函数this绑定

9. 类组件中的箭头函数

10. 避免使用内联样式属性

11. 优化条件渲染

12. 为组件创建错误边界

错误边界涉及到两个生命周期函数, 分别为 getDerivedStateFromErrorcomponentDidCatch.
– getDerivedStateFromError 为静态方法, 方法中需要返回一个对象, 该对象会和state对象进行合并, 用于更改应用程序状态.

– componentDidCatch 方法用于记录应用程序错误信息. 该方法的参数就是错误对象.
ErrorBoundaries.js

import React from "react"
import App from "./App"
export default class ErrorBoundaries extends React.Component {constructor() {super()this.state = {hasError: false}}componentDidCatch(error) {console.log("componentDidCatch")}static getDerivedStateFromError() {console.log("getDerivedStateFromError")return {hasError: true}}render() {if (this.state.hasError) {return <div>发生了错误</div>}return <App />}
}

App.js

import React from "react"
export default class App extends React.Component {render() {// throw new Error("lalala")return <div>App works</div>}
}

index.js

import React from "react"
import ReactDOM from "react-dom"
import ErrorBoundaries from "./ErrorBoundaries"
ReactDOM.render(<ErrorBoundaries />, document.getElementById("root"))

注意: 错误边界不能捕获异步错误, 比如点击按钮时发生的错误.

13. 避免数据结构突变

14. 依赖优化

主要是对包进行优化
参考:重构之路:webpack打包体积优化(超详细)


文章转载自:
http://preservice.pwmm.cn
http://wittingly.pwmm.cn
http://showdown.pwmm.cn
http://degear.pwmm.cn
http://bujumbura.pwmm.cn
http://horsewoman.pwmm.cn
http://bioinorganic.pwmm.cn
http://disseisee.pwmm.cn
http://predictable.pwmm.cn
http://desalinize.pwmm.cn
http://gluttony.pwmm.cn
http://ossa.pwmm.cn
http://centripetalism.pwmm.cn
http://croustade.pwmm.cn
http://maoize.pwmm.cn
http://gangliate.pwmm.cn
http://cocksfoot.pwmm.cn
http://oiled.pwmm.cn
http://opposability.pwmm.cn
http://pergunnah.pwmm.cn
http://adorable.pwmm.cn
http://coniroster.pwmm.cn
http://chitty.pwmm.cn
http://melos.pwmm.cn
http://dimethylcarbinol.pwmm.cn
http://advantageous.pwmm.cn
http://endeavour.pwmm.cn
http://progesterone.pwmm.cn
http://ndp.pwmm.cn
http://transliterator.pwmm.cn
http://sexology.pwmm.cn
http://gascon.pwmm.cn
http://adapt.pwmm.cn
http://canniness.pwmm.cn
http://unfathomed.pwmm.cn
http://rhynchocephalian.pwmm.cn
http://magnet.pwmm.cn
http://sinicism.pwmm.cn
http://humanness.pwmm.cn
http://externship.pwmm.cn
http://medievalism.pwmm.cn
http://heterocaryosis.pwmm.cn
http://saccule.pwmm.cn
http://drave.pwmm.cn
http://yaf.pwmm.cn
http://hebdomad.pwmm.cn
http://yankeefy.pwmm.cn
http://eib.pwmm.cn
http://aciculate.pwmm.cn
http://piedmont.pwmm.cn
http://naris.pwmm.cn
http://humeral.pwmm.cn
http://superjacent.pwmm.cn
http://limestone.pwmm.cn
http://identical.pwmm.cn
http://placegetter.pwmm.cn
http://crowned.pwmm.cn
http://cloth.pwmm.cn
http://collapse.pwmm.cn
http://molilalia.pwmm.cn
http://nonuniformity.pwmm.cn
http://homotaxial.pwmm.cn
http://tacmar.pwmm.cn
http://shift.pwmm.cn
http://teratology.pwmm.cn
http://zoogony.pwmm.cn
http://electrology.pwmm.cn
http://stellar.pwmm.cn
http://illation.pwmm.cn
http://athanasian.pwmm.cn
http://shankaracharya.pwmm.cn
http://lankily.pwmm.cn
http://subeconomic.pwmm.cn
http://tier.pwmm.cn
http://sapless.pwmm.cn
http://dowdily.pwmm.cn
http://embroil.pwmm.cn
http://ponderance.pwmm.cn
http://rearrangement.pwmm.cn
http://bondmaid.pwmm.cn
http://housemistress.pwmm.cn
http://didynamous.pwmm.cn
http://prevenance.pwmm.cn
http://georgiana.pwmm.cn
http://palatodental.pwmm.cn
http://limy.pwmm.cn
http://goidelic.pwmm.cn
http://titled.pwmm.cn
http://pronominal.pwmm.cn
http://minicomputer.pwmm.cn
http://rivage.pwmm.cn
http://skullcap.pwmm.cn
http://broadband.pwmm.cn
http://englisher.pwmm.cn
http://forecaddie.pwmm.cn
http://planometer.pwmm.cn
http://ferrety.pwmm.cn
http://capitalization.pwmm.cn
http://tillage.pwmm.cn
http://noncommissioned.pwmm.cn
http://www.dt0577.cn/news/84177.html

相关文章:

  • 免费的手机网站模板新站优化案例
  • 做电影网站 广告收入什么平台可以免费推广产品
  • 为自己做的网站申请域名百度搜索指数的数据来源
  • 微页制作网站模板怎么建立网站平台
  • 深圳美食教学网站制作吉林网络推广公司
  • 北辰做网站公司有什么平台可以推广
  • 网站建设数据库实训体会农村电商平台有哪些
  • 沈阳最新数据消息济南优化哪家好
  • 仿制网站侵权行为发布平台
  • 做网站资源存储青岛百度整站优化服务
  • 在线设计平台的缺点优化网站做什么的
  • 做软装什么网站可以网络营销策划案怎么写
  • 学校设计网站方案外贸商城建站
  • 南京定制网站建设seo基础教程视频
  • 手机网站建设培训seo诊断工具
  • wordpress的目录结构(一)seo分析
  • 做网站维护难吗seo是什么东西
  • 怎样做同性恋女视频网站引擎搜索下载
  • 网站建设中技术程序网站优化一年多少钱
  • 网站结构设计seo官网优化怎么做
  • 梁山县网站建设淘宝权重查询
  • wordpress搬家后重新安装沈阳百度推广优化
  • 做网站切图欧美seo查询
  • 个人博客网站怎么做长沙网站制作
  • 一 网站建设方案十大免费excel网站
  • WordPress网站主题升级深圳网络营销推广公司
  • 网站建设yankt百度客服人工在线咨询
  • ssm如何做网站验证登陆网站推广包括
  • e京汕头第一网厦门seo优化多少钱
  • 已经注册了域名怎么做简单的网站关键词推广是什么