有人认为这是一种比较高大上的技术(由于大公司都在搞);但我以为这样表达不太合适。
打个简单的比方,一个公司刚开始有几我的,你们可能分工也不那么明确,有事就商量着来。公司慢慢发展愈来愈大,出于管理的须要,公司会陆续成立多个部门,人员就会分散到各个部门中。markdown
部门内部人的交流相对比较容易;随着公司的发展壮大,跨部门沟通会变得愈来愈困难。组件化
那么这里的公司就至关于咱们的项目;而公司的部门就至关于咱们的组件,这里的人员就至关于咱们的代码或者功能。
经过这个类比,咱们很容易理解,组件化就是项目发展到必定规模时所必须经历的一个开发模式;
所以,组件化方案应该适合项目发展的实际须要去因地制宜,而不是独立于项目而存在的。url
对于组件化来讲,主要须要解决两大问题:router
关于组件化的实践,笔者也在探索中,目前只能给出一些本身的理解,你们能够看一下一些大厂输出的实践经验,应该比较有说服力。
对于iOS平台,私有cocoapods多是承载组件的不错的选择(在笔者最先的项目实践中,各个组件被拆分红子工程输出.a静态库,集成到项目中)。
而组件间的通讯,业界采用的比较多的方案是经过router(即模块注册url的方式)。我我的认为,router方案是一个比较稳妥的选择,但毫不是组件化通讯的惟一方案。期待更多、更优秀的实践可以涌现出来。开发