Skip to main content

syncfusion-react-treeview

Implement Syncfusion React TreeView component for hierarchical data display with node selection, drag-drop reordering, inline editing, and custom templating. Use this when building organizational charts, file systems, navigation trees, or any multi-level hierarchical interface. Covers selection modes, checkboxes, filtering, sorting, keyboard navigation, accessibility, and performance optimization with stateless templates.

소스 정보

저장소
syncfusion/react-ui-components-skills
최근 소스 활동
2026년 8월 11일 05:19
감지된 SKILL.md 언어
영어
스타
3
포크
9

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
14 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
syncfusion-react-treeview
description
Implement Syncfusion React TreeView component for hierarchical data display with node selection, drag-drop reordering, inline editing, and custom templating. Use this when building organizational charts, file systems, navigation trees, or any multi-level hierarchical interface. Covers selection modes, checkboxes, filtering, sorting, keyboard navigation, accessibility, and performance optimization with stateless templates.
metadata
{"author":"Syncfusion Inc","version":"34.1.29","category":"Navigation"}
# Syncfusion React TreeView - Comprehensive Implementation Guide Master the Syncfusion React TreeView component for building powerful hierarchical data interfaces with advanced features, performance optimization, and enterprise-grade functionality. ## Quick Start Navigation **Just Getting Started?** → Read [Getting Started](references/getting-started.md) - Installation, setup, first TreeView **Need to Display Hierarchical Data?** → See [Data Binding](references/data-binding.md) - All binding patterns (hierarchical, self-referential, remote, load-on-demand) **Working with Node Templates?** → Check [Templates and Rendering](references/templates-and-rendering.md) - nodeTemplate, **statelessTemplates (performance)**, drawNode callback, JSX/HTML templates **Want to CRUD Nodes Programmatically?** → Learn [Node Operations](references/node-operations.md) - Add, remove, update, move, refresh nodes dynamically **Need Checkboxes or Multi-Select?** → Read [Selection and Checking](references/selection-and-checking.md) - Single/multi-selection, checkboxes, parent-child sync, three-state **Implementing Drag-Drop?** → See [Drag-Drop and Reordering](references/drag-drop-and-reordering.md) - Single/multi-node drag, validation, restrictions **Allowing Node Editing?** → Check [Inline Editing](references/inline-editing.md) - Edit modes, validation, edit events, keyboard shortcuts **Need to Filter or Search?** → Learn [Filtering and Searching](references/filtering-and-searching.md) - Text filtering, parent chain inclusion, Predicate queries, dynamic filtering **Want Custom Sorting?** → See [Sorting and Ordering](references/sorting-and-ordering.md) - Global sort, level-wise sorting, custom algorithms, sortOrder property **Customizing Appearance?** → Read [Customization and Styling](references/customization-styling.md) - CSS, icons, level-based styling, full-row selection, hover effects **Keyboard Navigation & A11y?** → Check [Keyboard Navigation and Accessibility](references/keyboard-and-accessibility.md) - Shortcuts, ARIA, screen readers, WCAG 2.1 compliance **Advanced Features Needed?** → See [Advanced Features](references/advanced-features.md) - Load-on-demand, state persistence, RTL, localization, accordion pattern **Working with Context Menus?** → Learn [Context Menu Integration](references/context-menu-integration.md) - Menu operations, node management via menu, menu state --- ## Component Overview The **TreeViewComponent** from `@syncfusion/ej2-react-navigations` is a versatile hierarchical data display component with enterprise features: ### Core Capabilities | Capability | Details | |-----------|---------| | **Data Display** | Hierarchical, self-referential, remote (OData/WebAPI), load-on-demand | | **Node Operations** | Create, Read, Update, Delete (CRUD) nodes dynamically | | **Selection** | Single/multiple selection, checkboxes, three-state, auto parent-child sync | | **Editing** | Inline editing with validation, programmatic edit control | | **Customization** | Node templates (including **stateless optimization**), custom icons, CSS styling by level | | **Interaction** | Drag-drop (single/multi), context menus, tooltips, keyboard shortcuts | | **Performance** | Load-on-demand, stateless templates, filtering, sorting optimization | | **Accessibility** | WCAG 2.1 keyboard navigation, ARIA attributes, screen reader support | | **Internationalization** | RTL support, localization, multiple language packs | | **State Management** | Session persistence, programmatic node access | ### Key Properties Overview ```tsx <TreeViewComponent // Data fields={{ dataSource, id, text, parentID, child, hasChildren, expanded }} // Selection & Checking allowMultiSelection={true} showCheckBox={true} autoCheck={true} checkedNodes={[]} selectedNodes={[]} // Interaction allowDragAndDrop={true} allowEditing={true} // Customization nodeTemplate={templateFunction} statelessTemplates={['nodeTemplate']} // NEW: Performance optimization cssClass="custom" // Display allowTextWrap={true} fullRowSelect={true} // Behavior loadOnDemand={true} expandOn="Click" // or "DoubleClick" or "None" (accordion) sortOrder="Ascending" // Persistence & Internationalization enablePersistence={true} enableRtl={false} locale="en-US" // Events onNodeSelected={handleSelect} onNodeExpanded={handleExpand} onNodeDropped={handleDrop} // ... many more events /> ``` --- ## Complete Feature Map ### 1. Data Binding (5 Methods) - ✅ Hierarchical nested arrays - ✅ Self-referential (parentID) model - ✅ Remote OData v4 - ✅ Remote Web API - ✅ Load-on-demand lazy loading ### 2. Node Operations (11 Methods) - ✅ addNodes() - Create nodes - ✅ removeNodes() - Delete nodes - ✅ updateNode() - Modify node text - ✅ refreshNode() - Refresh from backend - ✅ moveNodes() - Move to different parent - ✅ getNode() - Get node by element - ✅ getTreeData() - Get all data - ✅ beginEdit()/endEdit() - Programmatic edit control - ✅ expandAll()/collapseAll() - Bulk operations - ✅ selectNodes()/clearSelection() - Selection control ### 3. Node Templates (3 Types) - ✅ **String templates** with ${...} interpolation - ✅ **HTML element ID** references - ✅ **JSX function** components - ✅ **statelessTemplates** - Performance optimization (ignore state updates) - ✅ **drawNode** callback - Alternative custom rendering method ### 4. Selection System (2 Modes) - ✅ Single selection - ✅ Multi-selection with Ctrl/Shift keyboard - ✅ Checkbox mode with three-state support - ✅ Parent-child auto-sync (autoCheck) - ✅ Independent checkbox mode (autoCheck=false) ### 5. Drag-Drop (2 Scopes) - ✅ Single-node drag - ✅ Multi-node drag (requires allowMultiSelection) - ✅ Drop validation with indicators (+, -, in-between) - ✅ Restrict drag-drop per node type - ✅ Custom drag area (dragArea property) ### 6. Editing - ✅ Inline edit (double-click or F2) - ✅ Input validation - ✅ Programmatic edit (beginEdit/endEdit) - ✅ Edit event cancellation ### 7. Filtering & Searching (Advanced) - ✅ Text-based filtering - ✅ Parent chain inclusion in results - ✅ DataManager with Predicate queries - ✅ Dynamic filter updates ### 8. Sorting (2 Levels) - ✅ Global sorting (ascending/descending) - ✅ Level-wise custom sorting - ✅ DataManager Query integration - ✅ Custom sort algorithms ### 9. Customization - ✅ CSS class styling by level - ✅ Custom expand/collapse icons - ✅ Dynamic icon per node - ✅ Full-row selection styling - ✅ Multi-line text wrapping - ✅ Icon visibility toggle (hover effects) ### 10. Keyboard Navigation (15+ Shortcuts) - ✅ Arrow keys for navigation - ✅ Home/End for first/last node - ✅ F2 for inline edit - ✅ Enter to confirm/select - ✅ Escape to cancel - ✅ Ctrl+Click for multi-select - ✅ Shift+Click for range select ### 11. Accessibility - ✅ WCAG 2.1 AA keyboard support - ✅ ARIA attributes (roles, properties, states) - ✅ Screen reader announcements - ✅ Focus management - ✅ Semantic HTML structure ### 12. Advanced Features - ✅ Load-on-demand with lazy loading - ✅ State persistence across sessions - ✅ RTL (right-to-left) support - ✅ Localization (16+ languages) - ✅ Accordion pattern (expandOn='None') - ✅ Event cancellation (preventable events) - ✅ Virtual scrolling for large datasets ### 13. Integration - ✅ Context menu integration - ✅ Toolbar integration - ✅ Tooltip support - ✅ Data operations via menu ### 14. Events (19 Events) - ✅ created, dataBound - ✅ nodeSelected, nodeSelecting, nodeClicked, nodeDoubleClicked - ✅ nodeExpanded, nodeExpanding, nodeCollapsed, nodeCollapsing - ✅ nodeEdited, nodeEditing - ✅ nodeDragStart, nodeDragging, nodeDragStop, nodeDropped - ✅ nodeChecked, nodeChecking - ✅ drawNode, keyPress --- ## Skill Progression Path ### Beginner Level (Start Here) 1. **Getting Started** - Installation, basic component, hierarchical data 2. **Data Binding** - Learn all 5 binding patterns 3. **Basic Selection** - Single selection, onClick handling ### Intermediate Level 4. **Checkboxes** - Multi-selection with checkboxes, parent-child sync 5. **Node Operations** - Dynamic CRUD operations 6. **Inline Editing** - Text editing with validation 7. **Drag-Drop** - Reordering and moving nodes 8. **Templates** - nodeTemplate basics, JSX templates ### Advanced Level 9. **Templates - Advanced** - **statelessTemplates optimization**, drawNode callback 10. **Filtering & Search** - Complex filtering with parent traversal 11. **Sorting** - Custom level-wise sorting 12. **Advanced Features** - Load-on-demand caching, persistence, RTL 13. **Keyboard & A11y** - WCAG compliance, screen reader support 14. **Context Menu** - Menu-driven operations 15. **Performance** - Optimization strategies for large datasets --- ## Documentation Reference | Section | Purpose | Audience | Prerequisites | |---------|---------|----------|---------------| | [Getting Started](references/getting-started.md) | Installation, basic setup | Beginners | None | | [Data Binding](references/data-binding.md) | 5 binding patterns | All users | Basic React/JSX | | [Templates and Rendering](references/templates-and-rendering.md) | **NEW: Complete template coverage including statelessTemplates & drawNode** | Intermediate+ | Data Binding knowledge | | [Node Operations](references/node-operations.md) | CRUD operations | Intermediate | Basic setup | | [Selection and Checking](references/selection-and-checking.md) | Selection modes, checkboxes | Intermediate | Basic setup | | [Drag-Drop and Reordering](references/drag-drop-and-reordering.md) | Drag-drop functionality | Intermediate | Basic setup | | [Inline Editing](references/inline-editing.md) | Node text editing | Intermediate | Basic setup | | [Filtering and Searching](references/filtering-and-searching.md) | **NEW: Advanced filtering patterns** | Advanced | Data Binding | | [Sorting and Ordering](references/sorting-and-ordering.md) | **NEW: Custom sorting algorithms** | Advanced | Data Binding | | [Customization and Styling](references/customization-styling.md) | CSS, icons, appearance | Intermediate+ | Basic CSS | | [Keyboard Navigation and Accessibility](references/keyboard-and-accessibility.md) | **NEW: Keyboard shortcuts & WCAG compliance** | Advanced | UI/UX knowledge | | [Advanced Features](references/advanced-features.md) | **NEW: Load-on-demand, persistence, RTL, localization** | Advanced | Intermediate TreeView | | [Context Menu Integration](references/context-menu-integration.md) | Context menu patterns | Advanced | Basic setup | --- ## Quick Example ```tsx import * as React from 'react'; import { TreeViewComponent } from '@syncfusion/ej2-react-navigations'; import '@syncfusion/ej2-react-navigations/styles/tree-view.css'; function App() { const hierarchicalData = [ { id: 1, name: 'Syncfusion', expanded: true, child: [ { id: 2, name: 'React Components' }, { id: 3, name: 'Angular Components' }, ] }, { id: 4, name: 'Essential Studio', child: [ { id: 5, name: 'Web' }, { id: 6, name: 'Desktop' } ] } ]; const fields = { dataSource: hierarchicalData, id: 'id', text: 'name', child: 'child' }; const handleNodeSelected = (args) => { console.log('Selected:', args.nodeData.name); }; return ( <TreeViewComponent fields={fields} allowDragAndDrop={true} allowEditing={true} showCheckBox={true} onNodeSelected={handleNodeSelected} /> ); } export default App; ``` --- ## When to Use This Skill **Use TreeView when you need:** - Hierarchical multi-level data display (org charts, file systems, navigation) - Single or multiple node selection with optional checkboxes - Drag-and-drop node reordering or moving - In-place node text editing with validation - Custom node appearance with templates or icons - Keyboard-accessible navigation (WCAG 2.1) - Large datasets with load-on-demand or lazy loading - Node filtering or searching with parent chain inclusion - Context menu-driven operations - State persistence across browser sessions - RTL language support for international apps - Performance-optimized rendering with stateless templates **Don't use TreeView for:** - Simple flat lists → Use DropDownList or ListView instead - Single-level navigation → Use NavBar or Breadcrumb instead - Only displaying static data → Use plain HTML/CSS - Simple data tables → Use DataGrid instead --- ## Architecture Overview ``` TreeViewComponent ├── Data Layer │ ├── Hierarchical Structure │ ├── Self-Referential Model │ ├── Remote Data (OData, WebAPI) │ └── Load-on-Demand │ ├── Node Management │ ├── CRUD Operations (add, remove, update, move) │ ├── Dynamic Refresh │ └── Programmatic Access │ ├── User Interaction │ ├── Selection (Single/Multi) │ ├── Checking (Three-state) │ ├── Editing (Inline) │ ├── Drag-Drop (Single/Multi) │ └── Keyboard Navigation │ ├── Customization │ ├── Templates (String/HTML/JSX) │ ├── Stateless Templates (Performance) │ ├── drawNode Callback (Custom Rendering) │ ├── Icons & Styling │ └── CSS Customization by Level │ ├── Advanced Features │ ├── Filtering & Searching │ ├── Sorting (Global & Level-wise) │ ├── Load-on-Demand Caching │ ├── State Persistence │ ├── RTL & Localization │ ├── Accordion Pattern │ └── Performance Optimization │ ├── Integration │ ├── Context Menu │ ├── Toolbar │ ├── Tooltips │ └── Data Coordination │ ├── Accessibility │ ├── Keyboard Shortcuts (15+) │ ├── ARIA Attributes │ ├── Screen Reader Support │ └── WCAG 2.1 Compliance │ └── Event System ├── Data Events (created, dataBound) ├── Selection Events (nodeSelected, nodeSelecting) ├── Expansion Events (nodeExpanded, nodeExpanding) ├── Editing Events (nodeEdited, nodeEditing) ├── Drag-Drop Events (nodeDragStart, nodeDragging, nodeDropped) ├── Checkbox Events (nodeChecked, nodeChecking) ├── Custom Rendering (drawNode) └── Keyboard Events (keyPress) ``` --- ## What's Covered in This Comprehensive Skill ✅ **Complete API Reference** - 11 methods, 19 events, 35+ properties ✅ **All Data Binding Patterns** - Hierarchical, self-referential, remote, load-on-demand ✅ **Advanced Templating** - nodeTemplate, **statelessTemplates, drawNode callback** ✅ **Selection Systems** - Single/multi-select, checkboxes, three-state, auto-sync
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기