当前位置: 首页 > backend >正文

使用 TypeScript + dhtmlx-gantt 在 Next.js 中实现

1. 安装依赖(确保已安装)

npm install dhtmlx-gantt

2. 创建 pages/gantt.tsx

'use client'import { useRef, useEffect } from 'react'
import { gantt } from 'dhtmlx-gantt'
import 'dhtmlx-gantt/codebase/dhtmlxgantt.css'interface Task {id: number | stringtext?: stringstart_date: string | Dateduration: numberprogress: numberowner?: stringpriority?: stringparent?: number | string
}export function ProjectGantt() {const ganttContainerRef = useRef<HTMLDivElement | null>(null)useEffect(() => {if (gantt && ganttContainerRef.current) {// 配置(可选)gantt.config.readonly = false// 初始化容器gantt.init(ganttContainerRef.current)// 定义数据const tasks: Task[] = [{id: 1,text: '项目启动',start_date: '2025-05-20',duration: 3,progress: 0.4,},{id: 2,text: '需求调研',start_date: '2025-05-23',duration: 5,progress: 0.2,parent: 1,},{id: 3,text: 'UI设计',start_date: '2025-05-25',duration: 4,progress: 0.1,parent: 1,},]// 载入数据gantt.parse({ data: tasks })}// 清理return () => {if (gantt) {gantt.clearAll()}}}, [])return (<div style={{ padding: '20px' }}><h2>Gantt 任务视图(TypeScript版)</h2><div id="gantt_here" ref={ganttContainerRef} style={{ width: '100%', height: '600px' }}></div></div>)
}

效果图如下
在这里插入图片描述

小结

  • 用 import { gantt } from ‘dhtmlx-gantt’
  • 定义一个 Task TypeScript 接口
  • 让 ref 指向容器元素
  • 在 useEffect 中初始化、载入数据、处理清理
http://www.xdnf.cn/news/6380.html

相关文章:

  • docker(四)使用篇一:docker 镜像仓库
  • 全球宠物经济新周期下的亚马逊跨境采购策略革新——宠物用品赛道成本优化三维路径
  • SQL练习(3/81)
  • 【Python】【面试凉经】Fastapi为什么Fast
  • uniapp,小程序中实现文本“展开/收起“功能的最佳实践
  • 5G + 区块链:技术巨浪下的新型数字生态!
  • 【生活相关-日语-日本-东京-搬家后-引越(ひっこし)(3)-踩坑点:国民健康保险】
  • Cloudflare防火墙拦截谷歌爬虫|导致收录失败怎么解决?
  • 国产化中间件 替换 nginx
  • MySQL索引优化面试高频考点解析(附实战场景)
  • 16.2 VDMA视频转发实验之模拟源
  • 【爬虫】DrissionPage-3
  • Ubuntu离线安装Minio
  • 鸿蒙OSUniApp 实现的地图定位与导航功能#三方框架 #Uniapp
  • websocket简介与基本使用
  • Protobuf3协议关键字详解与应用实例
  • mybatis-plus配置逻辑删除
  • 以项目的方式学QT开发(一)
  • upload-labs靶场通关详解:第6-9关
  • 解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs- MCP内幕解析
  • css画图形
  • 海康立体相机3DMVS软件使用不同工作模式介绍
  • vue3项目中使用CanvasEditor开箱即用(组件的形式,组件封装好了)
  • AI数字人融合VR全景:从技术突破到可信场景落地
  • Hive PredicatePushDown 谓词下推规则的计算逻辑
  • Springboot3自定义starter笔记
  • 数据科学和机器学习的“看家兵器”——pandas模块 之五
  • AI实时对话的通信基础,WebRTC技术综合指南
  • 网络安全-等级保护(等保) 2-5 GB/T 25070—2019《信息安全技术 网络安全等级保护安全设计技术要求》-2019-05-10发布【现行】
  • WebRTC技术下的EasyRTC音视频实时通话SDK,助力车载通信打造安全高效的智能出行体验