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

react-virtualized可视化区域渲染的使用

介绍

  1. github地址:https://github.com/bvaughn/react-virtualized 
  2. 实例网址:react-virtualized
  3. 如果体积太大,可以参考用react-window。

使用

  1. 安装: yarn add react-virtualized。
  2. 在项目入口文件index.js中导入样式文件(只导入一次就可以)
    import 'react-virtualized/styles.css';
  3. 打开文档 [ https://github.com/bvaughn/react-virtualized/blob/master/docs/List.md ],找到list的配置,找到示例,拷贝示例。
  4. 复制进你的项目
    import { List } from 'react-virtualized';const list = Array(100).fill("react-virtualized");function rowRenderer({key, // Unique key within array of rowsindex, // Index of row within collectionstyle, // Style object to be applied to row (to position it)isScrolling,isVisible,
    }: any) {return (<div key={key} style={style}>{list[index]}</div>);
    }export default function index() {return (<Listwidth={300}height={300}rowCount={list.length}rowHeight={20}rowRenderer={rowRenderer}/>)
    }
    

  5. 其中 rowRenderer 表示渲染函数的内容, isScrolling表示是否在滚动中,isVisible是否可见,!!!style样式属性,这个很重要,一定要加,作用是指定每一行的位置。
     

扩展

让list组件占满整个屏幕(AutoSize)

  1.  打开文档: https://github.com/bvaughn/react-virtualized/blob/master/docs/AutoSizer.md
  2.  添加AutoSize组件,通过render-props模式,获取到AutoSizer组件暴露的width和height属性。
  3. 设置list组件的width和height属性。
  4. 需要设置城市选择页面的根元素高度为100%,让list组件占满整个页面。
    import { List, AutoSizer } from 'react-virtualized';const list = Array(100).fill("react-virtualized");function rowRenderer({key, // Unique key within array of rowsindex, // Index of row within collectionstyle, // Style object to be applied to row (to position it)
    }: any) {return (<div key={key} style={style}>{list[index]}</div>);
    }const styles = {height: "100vh",width: "100vw"
    }export default function index() {return (<div style={styles}><AutoSizer>{({ height, width }) => (<Listheight={height}rowCount={list.length}rowHeight={20}rowRenderer={rowRenderer}width={width}/>)}</AutoSizer>,</div>)
    }
    

http://www.lryc.cn/news/117469.html

相关文章:

  • navicat连接postgresql报错
  • 题目:灾后重建
  • Vue 插槽 slot
  • 【C/C++】C语言位图操作实例(亲测)
  • Mahout教程_编程入门自学教程_菜鸟教程-免费教程分享
  • wxwidgets Ribbon使用wxRibbonToolBar实例
  • 8.9黄金最新行情走势分析及短线交易策略
  • VB+SQL房地产评估系统设计与实现
  • 用AOP实现前端传参时间的时区转化
  • mybatis There is no getter for property named ‘*‘ in ‘class java.lang.String
  • Mac终端前总会出现 (base) 字样解决
  • RabbitMQ面试题大全含答案
  • Linux配置QT Creator环境:ubuntu中安装QT Creator环境
  • 机器学习深度学习——池化层
  • siMLPe:Human Motion Prediction
  • 详解——JS map()方法
  • leetcode做题笔记57
  • SAP Fiori 将GUI中的自开发报表添加到Fiori 工作台
  • 【Docker】配置指定大小的磁盘空间
  • 使用Spring五大注解来更加简单的存储Bean对象
  • Netty面试题1
  • 水质分析积分球定义和原理
  • 自然语言处理从入门到应用——LangChain:记忆(Memory)-[基础知识]
  • phpstorm添加vue 标签属性绑定提示和提示vue的方法提示
  • 从计算到人类知识:ChatGPT与智能演化
  • Leetcode每日一题:2681. 英雄的力量(2023.8.1 C++)
  • 【学习】若依源码(前后端分离版)之 “ 异常处理”
  • 天花板级,Python接口自动化测试-接口关联封装调用(实例)
  • yolov5代码解读之yolo.py【网络结构】
  • Docker之jenkins部署harbor在harbor中完成部署