
在 VM 这种可视化流程平台里,拖拽不是一个锦上添花的小交互,而是用户每天都在重复走的主通道。没有拖拽,用户就得靠按钮、菜单和弹窗去完成这些动作:把一个工具加入流程;调整模块顺序;调整流程顺序;把控件拖进 UI 设计器里。所以,如果你想真正看懂 VM 的交互手感是怎么来的,拖拽机制是绕不过去的一章。先给结论:VM 里的拖拽,本质上都遵循同一个三段式:起点先封装“这次拖的是什么”,拖动过程中不断更新视觉反馈,最后在 Drop 时根据来源决定是新增、移动,还是交给设计器服务去创建组件。但要特别注意:“流程拖拽”和“设计器拖拽”虽然长得像,却不是同一套实现。前者围绕DragDropModel工作,后者围绕CreateComponentTool和设计器服务工作。这篇我们就把这两条线拆开讲清楚。先别急着看细节,先建立一个总模型围绕当前源码,VM 的拖拽可以先粗分成两条车道:车道