Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
react-base-virtual-list
Advanced tools
React basic virtual list, supports common features and is easy to customize. Online Demo
script
tag in browser, see IIFE.npm install react-base-virtual-list
yarn add react-base-virtual-list
pnpm add react-base-virtual-list
import { VirtualList } from "react-base-virtual-list";
export default function BaseExample() {
const exampleData = [
{
headline: "in magna bibendum imperdiet",
content: "Praesent blandit. Nam nulla.",
},
{
headline: "non velit donec diam",
content: "Aenean fermentum.",
},
];
return (
<>
<VirtualList
items={exampleData}
style={{ height: "600px", border: "1px solid #ccc", padding: "10px" }}
renderItem={(item, index) => (
<div key={index} style={{ marginBottom: "10px" }}>
<h3>
{index}. {item.headline}
</h3>
<div>
<div
style={{
float: "left",
width: "100px",
height: "100px",
background: "#f0f0f0",
borderRadius: "5px",
marginRight: "10px",
}}
></div>
{item.content}
</div>
</div>
)}
></VirtualList>
</>
);
}
items
: Array
. List data.renderItem
: (item, index: number) => ReactNode
. Rendering function for each item in the list. Index is the index of the list item in the whole list.itemSize
: number
. Estimated height of a single item in the list.buffer
: number
. Additional space outside the visible area of the virtual list to render.persistentIndices
: number[]
. Array of indices of items to be persistently rendered. This keeps the corresponding items rendered continuously without being removed due to being outside the rendering area. You can make them sticky by using CSS position:sticky
.listSize
: number
, default: 1000. Height of the visible area of the list. Only used before DOM creation, suitable for SSR.triggerDistance
: number
. The min distance to trigger re-rendering when scrolling.onScroll
: React.UIEventHandler
. Listen for the list's scroll event. Type is same with HTML native onscroll handle.virtual
: boolean
. default: true
. Whether to enable the virtual list feature. Render all items if disabled.renderHead
: () => ReactNode
. Customize the persistent rendering content of the list header. Suitable for absolutely positioned, fixed positioned elements, and elements that do not take up too much space.renderFoot
: () => ReactNode
. Customize the persistent rendering content of the list footer. Suitable for absolutely positioned, fixed positioned elements, and elements that do not take up too much space.className
: string
. Add a CSS class to the list root element.style
: React.CSSProperties
. Add CSS styles to the list root element.First, use ref
to obtain the exposed object.
import { useRef } from "react";
import { VirtualList, VirtualListHandle } from "react-base-virtual-list";
export default function BaseExample() {
const ref = useRef<VirtualListHandle>(null);
return (
<>
<VirtualList ref={ref}></VirtualList>
</>
);
}
Irrelevant parts are omitted in the above code. VirtualListHandle
is a typescript
type, please ignore it if you are using pure JS.
VirtualListHandle
type code.
interface VirtualListHandle {
scrollToIndex(
index: number,
block?: "start" | "end" | "center" | "nearest"
): void;
getRootElement(): HTMLElement;
forceUpdate(): void;
}
Then use the ref
object to access the exposed methods.
scrollToIndex
: (index:number, block = 'start'):void
. Scroll to the specified index position. block
is equal to the block
option of the HTML native method scrollIntoView
.getRootElement
: Get list HTML element。forceUpdate
: Forcefully re-render the list. This can be called after the visible area of the list changes.onScroll
.The dist/index.iife.js
file can be run in the browser.
You can host it on your server and then use the script
tag to include it. Before including it, you also need to include react
, react-dom
. The global variable exposed by this file is reactBaseVirtualList
, you can access all the exports of this file through window.reactBaseVirtualList
, and get the main component exported through window.reactBaseVirtualList.VirtualList
.
You can also use the following third-party CDN url to include it.
lib
: The main files, also the files that are packaged into the library. Running npm run build
will package the files in this directory into the dist
folder. The corresponding Vite configuration file is vite.build.ts
.src
: The files used for development and debugging. Running npm run dev
will run the code in this directory in the browser. Running npm run build:web
will package the code in this directory into the dist
folder. The corresponding Vite configuration file is vite.config.ts
.uno.config.ts
: unocss configuration file. unocss
only works in the src
folder. With the current configuration, you can use Tailwindcss
style class names..github/workflows/build.yml
: Some automated actions performed when publishing to GitHub. You can delete or modify it.FAQs
React base virtual list component.
We found that react-base-virtual-list demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.