怎么写好组件

咱们为何要写组件呢?这里不细分组件、插件、控件,追究其缘由无非让代码,可以复用,追求更快的开发效率。其实还有个重要的缘由,项目大了以后,难以维护。这个时候就会把项目中重复的部分抽取出来,造成一个组件。可是组件也会有些’缺点’,这个最后讲。html

组件需求

要实现如图的一个条件选择器jquery

blog_compant

有的时候,项目时间紧张,就会直接切图,经过jquery的dom选择器实现这个’简单的功能’。git

需求分析

为了更好的维护,以及更好的复用此组件,就要作些抽象。github

  • 数据层:用来决定按钮个数以及按钮是否选择
  • 表现层:按钮使用现有的ui组件
  • 逻辑层:按钮事件等逻辑处理

数据层

数据层主要对原始数据作些CURD的一些操做,具体的操做看具体的业务需求,可是要具备这个意识。bootstrap

表现层

说白了表现层也就是template层或者view层,就是用户所看到的,通常会用一个比较成熟的ui库,好比bootstrapdom

众所周知,template就是根据数据渲染成html,在spa项目尤为重要。ui

2304932112-578c3928ccd21_articlex

逻辑层

这层主要作 调用template方法将数据渲染到页面上;将页面上的一些事件结果,映射到数据层。其实如今流行的MVVM模式,就是在逻辑层这里作了更多的事情,只是开发者们不用去关心细节处理,更专一业务的开发。this

完整案例spa

总结

这样子写能更好的抽象出公共部分,在其它模块就只要传入数据就能够了,不用重复拷贝代码了。插件

一开始说到组件会有‘缺点’?尤为是业务组件?

分析

项目版本迭代是一个很正常的事情,初版的时候,好比这个数据选择项这个组件,在每一个模块都有这样的需求。可是在下一个版本的时候,产品经理在其中一个模块更改了业务需求,这就致使这个模块的数据选择项,跟其它模块的数据选择项不同了,可是又有80%甚至90%的类似度,这个时候就很是困扰,究竟是从新写个,仍是再对原来的组件,增长个兼容配置项?

从新写会有不少重复的代码。新增配置项,又必须保证以前全部的模块都要正确,得必须都验证过去。有人就会以为直接去验证好了啊,可是项目大了以后,一个一个去验证不是解决问题的办法。

最终解决

在写组件的时候,业务逻辑部分,现预留配置项,以便后面业务发生改变,经过配置项来重置。尤为是以为产品经理会更改频繁的部分。

实在是以为更改逻辑较大,那就从新写个吧,由于一个一个去验证以前的模块的成本仍是很大的。

原文地址 http://tostring.site/2016/07/16/%E6%80%8E%E4%B9%88%E5%86%99%E5%A5%BD%E7%BB%84%E4%BB%B6/

相关文章
相关标签/搜索