这里先说结论:
如果你是想做个demo给领导汇报或是想尽量复用已有成果做个完整度较高的 demo,我还是推荐 你用 2.7 ,因为他全家桶的插件太全了。
如果你是技术负责人,正在做技术选型,看是否满足公司规划产品的技术要求,且对质量和交互有很高要求和定制特色的(比如:公司有专门的交互设计师),我建议你用 3.1 最新版。虽然保姆类的插件比较少,但胜在bug少,只要自己对该 svg.js 这个底层插件足够精通,其他的全家桶辅助型插件自己开发也不费事。
因为全家桶的插件都是在 svg.js 基础上开发的。做个比喻:svg.js 好比 jquery,而其他插件就是 jquery easyui、jquery miniui、jqueryUI...
其实当初没有用最新版,而用的2.7 最主要原因是:
前期的技术选型需要做个完整度较高的 demo 给技术总监和各大佬们看,而 2.7 全家桶是最适合的,其中很多插件已经具备特定场景的产品化效果。研发做demo的时间只用了 2 周。这在那时候能尽快的做出可行性分析是迫切的(因为那时候有不下三种技术方案可以实现这一类 web 绘图产品,面对每个技术,领导各种催,技术大拿们各种质疑,从学习成本带来的额外工作量,到公司技术栈的能否复用,再到未来产品的支撑。。。烦死了)。
因为完整度高,且功能很全,demo 做的时间又短,顺利成章的,技术方案通过了,那么架构的搭建和功能模块的切分自然涉及到工作量评估。那个时候没有任何动力和信息支持我们去和产品经理或大领导们沟通,要求必须用最新的3.1,那个demo 的成果不能复用。这在研发团队看来都是觉得没有必要非用最新版。
所以,自然就继续沿用2.7 进行了后期的研发,并且架构上,插件使用上,也自然复用了 demo 中的很多代码。
一段时间内双方都皆大欢喜。
但开发到后期,为什么又从 2.7 改为 3.1 了?
这是无奈和妥协的结果。因为研发团队小看了产品经理和交互设计师。后面的交互越来越放飞自我。完全不顾及研发早期的忠告(插件的限制和 demo 成果的局限)。研发团队也渐渐变得被动,且被每天的产品研发进度催的焦头烂额,自然对功能模块工作量的膨胀也变得越来越麻木和被动。
到后来,插件已无法满足产品新交互时,且已存在大量插件的定制部分、修改源码、创造新底层方法。当然,这期间研发团队也慢慢对 svg.js 的底层更熟悉起来。
到了某个时刻,我们评估:模块开发周期超出升级插件的时间时,我和产品经理商量升级 svg.js 插件的上下5k年的历史缘由和利弊。最后团队才达成一致,停止产品开发,升级插件,学习新api。磕磕绊绊吧,用时 2 周。
至于 2.7 到 3.1 ,这中间 不兼容的地方。我就不罗列了,官网是第一文档。
如下图位置,可以切换版本:
下面列出全家桶插件的位置,如下图,貌似 3.1 版本也列出那么多辅助插件,别高兴太早。其实你点开看 github,发现根本不支持 最新版 3.1,仅支持 2.7 。