The infinite-tree library for React.
Demo: http://cheton.github.io/react-infinite-tree
Features
- High performance infinite scroll with large data set
- Customizable renderer to render the tree in any form
- Load nodes on demand
- Native HTML5 drag and drop API
- A rich set of APIs
Browser Support
![]() Chrome |
![]() Edge |
![]() Firefox |
![]() IE |
![]() Opera |
![]() Safari |
---|---|---|---|---|---|
Yes | Yes | Yes | 9+ | Yes | Yes |
Installation
npm install --save react react-dom infinite-treenpm install --save react-infinite-tree
Example
import React from 'react';import classNames from 'classnames';import InfiniteTree from 'react-infinite-tree';import 'react-infinite-tree/dist/react-infinite-tree.css'; const data = id: 'fruit' name: 'Fruit' children: id: 'apple' name: 'Apple' id: 'banana' name: 'Banana' children: id: 'cherry' name: 'Cherry' loadOnDemand: true ; Component tree = null; { thistree; // Select the first node thistree; } { return <div> <InfiniteTree = = = = = ; = .(); ( < = = = > <div ="infinite-tree-node" = > !more && loadOnDemand && <a =>►</a> more && open && <a =>▼</a> more && !open && <a =>►</a> <span ="infinite-tree-title">name</span> </div> </div> ; } selectable=true shouldSelectNode=node if !node || node === thistree return false; // Prevent from deselecting the current node return true; onClick=event // click event const target = eventtarget || eventsrcElement; // IE8 console; onDoubleClick=event // dblclick event onKeyDown=event // keydown event onKeyUp=event // keyup event onCloseNode=node onOpenNode=node onSelectNode=node onWillCloseNode=node onWillOpenNode=node onWillSelectNode=node onClusterWillChange= onClusterDidChange= onContentWillUpdate= onContentDidUpdate= /> </div> ); }}
API Documentation
Check out API documentation at infinite-tree:
License
Copyright (c) 2016 Cheton Wu
Licensed under the MIT License.