react列表渲染优化(react 页面渲染之后更新数据)

react渲染原理分析

Vue和react的虚拟DOM的原理和步骤是完全一致的。

很好的问题。简单的原理理解是:JSX 的一对封闭标签,会转译为一个 createElement 函数。如下的代码转译后,实际上会变成两个并排的函数。

首次加载页面的速度加快。客户端渲染的一个缺点是,当用户第一次进入站点,此时浏览器中没有缓存,需要下载代码后在本地渲染,时间较长。而服务器渲染则是,用户在下载的已经是渲染好的页面了,打开速度比本地渲染快。

Vue宣称可以更快地计算出Virtual DOM的差异,这是由于它在渲染过程中,会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。而对于React而言,每当应用的状态被改变时,全部子组件都会重新渲染。

react整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,所以在react中,是单向数据流,推崇结合immutable来实现数据不可变。

React方向:React的渲染流程以及环境搭建

1、更新已渲染的元素:React 元素是不可变对象。一旦被创建,你就无法更改它的子元素或者属性。一个元素就像电影的单帧:它代表了某个特定时刻的 UI。

2、因为是首次挂载,所以 root 从 container._reactRootContainer 获取不到值,就会创建 FiberRoot 对象。在 FiberRoot 对象创建过程中考虑到了服务端渲染的情况,并且函数之间相互调用非常多,所以这里直接展示其最终调用的核心方法。

3、SEO。服务器端渲染可以让搜索引擎更容易读取页面的meta信息以及其他SEO相关信息,大大增加网站在搜索引擎中的可见度。其实并不一定要争个好坏,服务器端和客户端渲染各有各的优缺点。

4、具体实现方法如下:使用React.lazy()和Suspense组件:React.lazy()是React16版本中引入的新特性,可以实现动态加载组件。通过React.lazy()可以将组件按需加载,只有在组件被访问时才会加载。

5、运行 npm install react react-dom --save-dev 命令,安装 react 和 react-dom 包。

React性能优化之减少组件渲染次数

一般情况下我们对class组件做优化,都是在shouldComponentUpdate这个生命周期里面做相应的判断来确认是否需要重新渲染,以达到优化的效果。后来React为class组件提供了pureComponent来实现这一效果。

减少组件的渲染次数,能提升 Vue App 的运行时性能。通过写法的优化,可以减少不必要的组件渲染次数。开发中,我们会碰到用动态组件的情况。

我们一般会使用拆分context或者结合useMemo来减少组件渲染的次数:我们可以通过将context拆分为承载不稳定数据的instableContext和承载稳定数据的stableContext。

如果你的应用渲染了长列表(上百甚至上千的数据)时,React官网推荐我们使用“虚拟滚动”技术。这项技术会在有限的时间内仅渲染有限的内容,并奇迹般地降低重新渲染组件消耗的时间,以及创建 DOM 节点的数量。

让组件只监控特定数据的变更,再进行渲染后的操作,忽略不必要的操作,很好的优化了组件性能。只有一个参数,每一次组件渲染完成后 且 在下一次渲染前 被调用。有两个参数,第二个参数是空数组( [] ) 。

react一个页面多个组件、如何分批渲染,优先可视化范围内的

1、首先,在js文件中引入WidthProvider和Responsive组件,并且实例化响应式拖拽组件。 其次,在css文件中引入插件的样式。在React的render方法中渲染可拖拽布局。

2、在目录文件夹下运行“yarn start”命令,基础页面也就是react的logo等,此时的页面长这样:然后我们就可以在render中引入新的组件渲染我们需要的页面了。

3、前端项目是由一个个页面组成的,对于Vue来说,一个页面是由多个组件构成的,页面本身也是一个路由组件。对于React来说也是如此。

4、传统做法是直接将1000个item渲染到页面上,即渲染1000个dom 从上图可以看出,可视区域范围内,仅有7个item,也就是说,不可见的993个元素的存在是浪费资源,从而导致渲染时占满内存、造成页面卡顿。

5、具体一点描述的话,我们知道对于react来说,元素分为两类:dom元素,组件元素。

react列表渲染优化(react 页面渲染之后更新数据)  第1张

记录React性能优化之“虚拟滚动”技术——react-window

1、如果你的应用渲染了长列表(上百甚至上千的数据)时,React官网推荐我们使用“虚拟滚动”技术。这项技术会在有限的时间内仅渲染有限的内容,并奇迹般地降低重新渲染组件消耗的时间,以及创建 DOM 节点的数量。

2、滚动容器中有个属性叫 scrollTop ,表示当前已滚动的高度,也就是上方不可见的区域。我们用 scrollTop 除以单个元素的高度 domHeight ,再向下取整,即可得到当前可见区域第一个元素的下标。

3、首先构建 Header 组件。添加样式,构建 App 组件.应用现在只渲染 Header 这个组件,在 Header 下面,我们将创建 About 组件来显示一个简单的 Text。

4、react滚动加载图片闪烁分辨率过大加载失败。根据查询相关资料得知,react滚动加载图片闪烁是分辨率过大导致加载图片失败,换用Image表现正常并且能支持大分辨率图片,但是Image对于图片的清晰度支持会很差,必须调高原图分辨率。

5、单向数据流 在React中,你操作的是数据。React根据你的数据变动来渲染出新的内容。数据就是数据,渲染就是渲染。避免了MVC中view部分又去直接修改model。具体实现运用了Redux、纯函数、高阶组件。

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的前端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23 13:55
下一篇 2023-09-23 13:55

相关推荐

发表回复

登录后才能评论