import { useState } from 'react'; import { DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors, } from '@dnd-kit/core'; import { arrayMove, SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy, } from '@dnd-kit/sortable'; import { DraggableItem } from './components/DraggableItem'; import { Cpu, Thermometer, Gauge, Radio, Zap, Droplets } from 'lucide-react'; function App() { const [experiments, setExperiments] = useState([ { id: '1', name: '温度传感器实验', icon: Thermometer, description: '学习温度传感器的工作原理及应用' }, { id: '2', name: '压力传感器实验', icon: Gauge, description: '了解压力传感器的测量原理与特性' }, { id: '3', name: '位移传感器实验', icon: Radio, description: '掌握位移传感器的检测方法' }, { id: '4', name: '光电传感器实验', icon: Zap, description: '探索光电传感器的光电转换原理' }, { id: '5', name: '湿度传感器实验', icon: Droplets, description: '研究湿度传感器的测量技术' }, ]); const sensors = useSensors( useSensor(PointerSensor), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates, }) ); function handleDragEnd(event) { const { active, over } = event; if (over && active.id !== over.id) { setExperiments((items) => { const oldIndex = items.findIndex((item) => item.id === active.id); const newIndex = items.findIndex((item) => item.id === over.id); return arrayMove(items, oldIndex, newIndex); }); } } return (
实验课件交互式平台
拖动实验项目可以调整顺序,规划您的学习路径
{experiment.description}
使用现代化技术构建 • React + Vite + Tailwind CSS