0

0

为什么react要用专门的组件来渲染列表

WBOY

WBOY

发布时间:2022-05-05 10:33:15

|

2116人浏览过

|

来源于php中文网

原创

因为react在渲染大型数据集合时,协调器必须评估每个变化的集合所产生的的组件,效率非常低;而使用专门的组件来渲染列表,就可以提高渲染大型数据集合的表现,并且不再渲染其他组件。

为什么react要用专门的组件来渲染列表

本教程操作环境:Windows10系统、react17.0.1版、Dell G3电脑。

为什么react要用专门的组件来渲染列表

在专用组件中渲染列表

这点在渲染大型数据集合的时候尤为重要。React在渲染大型数据集合时表现的非常差,因为协调器必须评估每个变化的集合所产生的组件。因此,建议使用专门的组件来映射集合(数组)并且渲染这个组件,切不再渲染其他组件:

不好的:

class MyComponent extends Component {
    render() {
        const {todos, user} = this.props;
        return (
{user.name}
    {todos.map(todo => )}
) } }

在上面例子中,当 user.name 改变时,React 会不必要的协调所有的 TodoView 组件. 尽管TodoView组件不会重新渲染,但是协调的过程本身就非常昂贵.

好的:

class MyComponent extends Component {
    render() {
        const {todos, user} = this.props;
        return (
{user.name}
) } }
class TodosView extends Component {
    render() {
        const {todos} = this.props;
        return 
    {todos.map(todo => )}
) } }

React中的列表渲染

Vue.js中使用v-for 实现模板中的列表项循环渲染;

小程序中使用 wx:for 实现模板中的列表项循环渲染;

Powtoon
Powtoon

AI创建令人惊叹的动画短片及简报

下载

React中没有模板(即不需要v-for),也没有指令系统(即没有提供类似的机制)。

方法1:for循环遍历

import React, { Component } from 'react'
export default class App extends Component {
// 假设服务器端返回如下
state={books:['巴黎圣母院','悲惨世界','爱的教育','简·爱','钢铁是怎样炼成的','安徒生童话']}
booklist(){
// 把服务器端返回的字符串数组转换为JSX数组
let arr=[]
for(let i=0;i《{this.state.books[i]}》 )
}
return arr
}
render() {
return (
    {this.booklist()}
) } }

方法2:创建函数返回映射后的JSX数组

showList(){
return   this.state.list.map( (e,i)=>JSX )
}
{this.showList() }
import React, { Component } from 'react'
export default class App extends Component {
// 假设服务器端返回如下
state={books:['巴黎圣母院','悲惨世界','爱的教育','简·爱','钢铁是怎样炼成的','安徒生童话']}
booklist(){
// 把服务器端返回的字符串数组转换为JSX数组
return this.state.books.map( (b,i)=> 
  • 《{b}》
  • ) } render() { return (
      {this.booklist()}
    ) } }

    方法3:直接绑定映射后的JSX数组

    {
    this.state.list.map( (e,i)=>JSX )
    }
    import React, { Component } from 'react'
    export default class App extends Component {
    // 假设服务器端返回如下
    state={books:['巴黎圣母院','悲惨世界','爱的教育','简·爱','钢铁是怎样炼成的','安徒生童话']}
    render() {
    return (
    
      {/*this.booklist()*/} { /*此处不能急 编写for循环——for不是表达式*/ this.state.books.map( (b,i)=>
    • 《{b}》
    • ) }
    ) } }

    以上几种方法出来的结果都是一样的,如下图所示

    44444.png

    推荐学习:《react视频教程

    相关文章

    相关标签:

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    vue.js为什么报错
    vue.js为什么报错

    vue.js报错的原因:1、语法错误;2、组件使用不当;3、数据绑定问题;4、生命周期钩子使用不当;5、插件或依赖问题;6、路由配置错误;7、异步操作处理不当等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    120

    2024.03.11

    vue.js插槽有哪些用
    vue.js插槽有哪些用

    vue.js插槽的作用:1、提高组件的可重用性;2、实现组件的灵活布局;3、实现组件间的数据传递和交互;4、促进组件的解耦和模块化。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    173

    2024.03.11

    vue.js怎么带参数跳转
    vue.js怎么带参数跳转

    vue.js带参数跳转的方法:1、定义路由;2、在组件中使用路由参数;3、进行带参数的跳转。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    90

    2024.03.11

    js正则表达式
    js正则表达式

    php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

    510

    2023.06.20

    js获取当前时间
    js获取当前时间

    JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

    244

    2023.07.28

    js 字符串转数组
    js 字符串转数组

    js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

    278

    2023.08.03

    js是什么意思
    js是什么意思

    JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

    5293

    2023.08.17

    js删除节点的方法
    js删除节点的方法

    js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

    478

    2023.09.01

    Golang 性能分析与pprof调优实战
    Golang 性能分析与pprof调优实战

    本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

    9

    2026.01.22

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    React 教程
    React 教程

    共58课时 | 3.9万人学习

    国外Web开发全栈课程全集
    国外Web开发全栈课程全集

    共12课时 | 1.0万人学习

    React核心原理新老生命周期精讲
    React核心原理新老生命周期精讲

    共12课时 | 1万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号