Why Vue Teams Choose ApexGantt
The vue-apexgantt package exposes the chart as a real Vue 3 component, <ApexGanttChart />, with reactive props, typed emits, template refs, and a useGanttData composable, not a thin shell around an imperative library that leaves you fighting reactive proxies and template refs that don't behave like Vue components should. It shares its core engine with ApexGantt's React, Angular, and JavaScript wrappers, so the task data model stays consistent if your stack grows beyond Vue. Learn about the full ApexGantt component →
Drag-and-Drop Scheduling, Wired to Reactive State
Drag tasks to reschedule, resize bars, and draw dependency arrows on the timeline. Bind the @task-dragged, @task-resized, and @task-update-success emits to update your reactive state, and the chart reflects it. Watch the scripted plan move, then grab a bar yourself.
Critical Path That Recomputes on Every Edit
ApexGantt highlights the longest chain of dependent tasks that drives your finish date. Mutate a ref()-backed task or call update() on the template ref and the critical path recomputes automatically. Watch it re-route between the two branches below.
Baselines for Planned vs. Actual
Attach a planned (baseline) range to each task in the same tasks array and ApexGantt draws a thin reference bar beneath the live one, so schedule variance is visible at a glance. No separate data structure required. The demo drifts the actuals past plan to show a slipping project.
Multiple View Modes via a Single Prop
Bind the view-mode prop to switch between day, week, month, quarter, and year scales reactively, with no data re-query. This one auto-zooms; interact to take the controls.
Task Dependencies
Finish-to-start, start-to-start, and finish-to-finish links with lag, set on the :tasks you bind.
Milestones
Zero-duration diamond markers for gates, releases, and key dates.
Annotations
Pin sprint boundaries, deadlines, or notes to specific dates via options.annotations.
Resizable Sidebar
A resizable task list that adapts to long task names or more timeline room.
Rich HTML Tooltips
Templatable tooltips showing dates, duration, progress, and dependencies.
Custom Colors & Dark Theme
Bind :theme reactively for a runtime toggle; deeper styling via the options prop.
SVG Export
Export timelines to high-quality SVG with every task and dependency preserved.
TypeScript Types
Definitions ship for the ApexGanttChart props, TaskInput, GanttUserOptions, ParsingConfig, and emits.
Performance with Large Vue Gantt Timelines
ApexGantt renders large project timelines quickly. On an Apple M4 Pro (apexgantt 3.11.1, headless Chromium):
Vue Gantt Chart FAQ
How do I install ApexGantt for Vue?
Run npm install vue-apexgantt apexgantt. Both packages are required: vue-apexgantt is the Vue 3 wrapper, and apexgantt is the core engine. Import ApexGanttChart from vue-apexgantt and render it with a tasks prop.
Does ApexGantt work with Vue 2?
No. vue-apexgantt is a Vue 3 wrapper using the Composition API and requires Vue 3.3 or later (peer dependency vue ^3.3.0). Vue 2 is not supported.
How do I handle drag-and-drop updates in Vue state?
Bind the task-dragged, task-resized, and task-update-success emits to handler functions. Each emits a typed detail object containing the updated task; update your reactive state from the handler, and the chart reflects the change.
Does ApexGantt support TypeScript in Vue?
Yes. Full TypeScript definitions ship with the package, including TaskInput, GanttUserOptions, ViewMode, ThemeMode, ParsingConfig, and event detail types like TaskDraggedEventDetail and TaskResizedEventDetail.
How do I parse API data that doesn't match the ApexGantt schema?
Use the useGanttData composable. Pass your raw data and a ParsingConfig mapping your field names to ApexGantt's (id, name, startTime, endTime, progress, dependency). Dot notation handles nested objects; a transform function handles unit conversions.
Does ApexGantt support critical path and baselines?
Yes. Critical path highlighting and baseline (planned-vs-actual) tracking are built in, configurable through GanttUserOptions. Worked demos live at /apexgantt/demos/critical-path/ and /apexgantt/demos/baseline/.
Can ApexGantt handle large timelines?
Yes. In a benchmark on an Apple M4 Pro, ApexGantt rendered a 5,000-task timeline in about 275 ms and a 10,000-task timeline in about 620 ms (apexgantt 3.11.1).
Ready to build your Vue project timeline?
The fastest path is the demos: running examples you can read and copy from.
See ApexGantt Demos
