Vue 如何去实现通过拖拽动态生成不同组件的呢 ?

市面上类似问卷星,调问,form-generator 等等这种能通过拖拽不同图标就能生成其各自对应的组件 ,可以通过 Web 拖拽布局,添加功能。这类的产品是如何做到的呢 ?需要哪些底层技术 ?或者有哪些已开源的服务端工具?

这种自定义表单,可以类似看一下

既然你都提到了form-generator,本身是开源的,那么你看看他的package.json就能看到使用了什么组件,再看组件的源码就知道是如何实现的了

单行布局用普通的drag和vue-component-is组合即可实现,页面布局和组件完全DIY的话要使用vue-dragable和vue-component-is实现,一个是标准布局,一个是绝对定位布局,最重要的是你编写好的组件,在用户拖拽结束后,根据这个组件的code或者id去动态注册并且渲染,用component-is或者h-render都可