一、问题的表象:屎山的形成,主要是乱而杂的项目需求,层层累加,项目到处开花。
比如:你接手一个项目,要修改一个小问题,却要找半天,细节在那里,那个位置,而这个位置又引用了某一部分的方法,接而又有多处在使用,修改一处十处要跟着坏。而这些问题在于从来没有人,为项目建立目录,只为项目而项目,为了完成而完成。就像一本只有内容的书,想到什么写什么,从来没有人想过要写个目录大纲。因此分析出屎山的问题点为:
1、数据一大,全盘密密麻麻,无从定位问题所在。
2、思路不清晰,结构不明了。
3、容易出现重复问题却找不到问题点。
二、解决的思路
随手写的代码,问题入口多样化,解决的思路就先让这些入口,统一化处理。VUE出现前,好像并没有这类问题出现过,可能是因为之前的前端比较简单,每个事件都是一个一入口,顺着入口而下,便有一系列的动作在等着处理。没错,想要的就是这个效果,事件流的方式。让所有入口都成为一个事件流,以流的方式执行,便有很清晰明了的结构出现。就是以往jq那样的链式操作:
$("#all").addClass("highlight").children("a").show().end().siblings().removeClass("highlight").children("a").hide();
每个方法都是一个目录,方法里面都是细节操作,等同于一本书的目录一般,直接能从一句话里,简明的看清整个结构分布。下一篇幅,用实践项目之一 antvG6,实例进行讲解。
三、存在问题
链式流操作的唯一缺点是,一个接一个,并非并行执行。因而会出现执行效率问题。但利大于弊,项目大时由为明显。本人才疏学浅,目前没有想到更理想的方式,如果有请大家在评论区,留言。