# ant3-virtual-select **Repository Path**: bruce68/ant3-virtual-select ## Basic Information - **Project Name**: ant3-virtual-select - **Description**: 基于antd3 开发的高性能select组件,大数据渲染不卡顿 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-11-17 - **Last Updated**: 2021-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # @tntd/ant3-virtual-select 基于ant3实现高性能虚拟滚动列表 ## 安装 ```bash npm i @tntd/ant3-virtual-select ``` ## 用法 所有API同ant3 Select - 注:新增maxWidth属性,该属性只有在dropdownMatchSelectWidth=false的时候才起作用,由于dropdownMatchSelectWidth=false,下拉宽度需要系统计算,同时渲染多个此组件时,会有性能消耗,故新增此属性,在渲染之前计算好下拉宽的高度,已达到性能提升。这里也提供一个算文本的像素宽度的方法,仅供参考: ```javascript // 获取单行文本的像素宽度 getTextPixelWith = (text, fontStyle = "14px") => { let canvas = document.createElement("canvas"); // 创建 canvas 画布 let context = canvas.getContext("2d"); // 获取 canvas 绘图上下文环境 context.font = fontStyle; // 设置字体样式,使用前设置好对应的 font 样式才能准确获取文字的像素长度 let dimension = context.measureText(text); // 测量文字 return dimension.width; } ``` ```javascript import VirtualSelect from "@tntd/ant3-virtual-select"; const Option = VirtualSelect.Option; const children = []; for (let i = 0; i < 10000; i++) { children.push( ); } {children} ```