组件化究竟组什么东西,一文解释给你听

这篇文章主要讲的是组件架构思想,不会讲具体的实现细节,看完你会对组件化有一个全面的了解!

为了方便理解,本文中组件=模块,组件化=模块化,统一以组件称呼

组件化作用:独立、重用 - 提高效率

组件化需要做的几个部分

组件拆分

拆分才是重中之中,很多人没理清组件的分解,我个人推荐把组件分为业务组件和功能组件

举例:注册登录 - 业务组件 -每个版本可能都会变化  播放器 - 功能组件 - 重用性高 注册登录模块 - 业务组件 - 每个版本都可能变 播放器 - 功能组件 - 重用性高

这样就清晰多了,那么我们的组件可以有哪些呢,下图我大概列了一下

自定义的功能组件,不包括第三方,还有很多,仅作参考


业务组件,每个app不同业务,仅作参考

组件的实现方式

1.cocoapods

    每个组件都封装成一个个pod库,需要的直接引入,操作简单,但无法实时修改,如在项目中修改pod是无效的,要去pod修改后项目更新pod才有效,这样也保证了pod库的独立,对于频繁需要修改代码的pod,如业务组件,就建议不要用这个了,业务组件一般只有独立分离作用,无重用效果,弄成pod反而会增加开发成本,比如多版本并行开发,那git策略就会显得很繁琐

2.submodule

    这种是利用git子模块来搭建组件,原本项目只有一个git项目,有了子模块后,子模块会有对应的版本项目,好处是一改编译运行即可,但操作比较繁琐(弃)

3.多个子项目(proj)

    这种方式好处也是一改即改,可以立即编译运行,缺点是几乎不能重用,只起到一个独立作用(适合业务组件)


组建间的通信

网上有很多组件化的文章,在我看来,很多讲的其实是组件化之间的通信,如路由方案、target-action方案、BeeHive等等,这些其实都是关于组件如何通信,主要分静态调用和动态调用,还有动静结合

* 静态调用:

    需要新增接口才可以调用,优点是不易出错,清晰明了,缺点是,要写代码

* 动态调用:

    对一定的格式字符串进行分解,再使用运行时去调用对应的方法,优点是可配置,缺点是硬编码,不怎么清晰,统一出错

* 结合:就是有的静态有的动态

总结:

    这些方案都是很好的解决方案,大家可以根据自己项目需要而做选择,这里不做详述~

    本文从组件的拆分-实现-通信,来讲了组件化大致的内容,感谢观看~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容