.h
#import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface Target_ModuleB : NSObject - (UIViewController *)Action_viewController:(NSDictionary *)params; @end.m
#import "Target_ModuleB.h" #import "ModuleBViewController.h" @implementation Target_ModuleB - (UIViewController *)Action_viewController:(NSDictionary *)params { ModuleBViewController *VC = [[ModuleBViewController alloc] init]; return VC; } @end从上面的实现文件中,我们可以看到,Target文件的作用也很简单,就是为我们提供导航跳转的目标控制器实例对象。这里的目标控制器实例就是业务组件B的ModuleBViewController 实例。
细心的小伙伴们发现,咦!我们在第九步中打印出来的target 和 action 不就正是Target文件的Target_ModuleB 和 Action_viewController: 。
上面我们只是串讲了业务组件B的一系列流程,业务组件A的用法和业务组件B的用法一样,如果后面再有业务组件C,D,都是一样的道理,就不再一一讲解了。
好了,现在小伙伴们应该看懂了这一连串的工作流程了吧,如果还没有看懂,可以看看Casa的讲解CTMediator。作者建议直接运行提供的示例Demo项目进行调试,这样便于理解各个组件之间的关系。
组件化工程示例项目地址组件化开源项目Git仓库地址
最后,我们再来看张组件化完整的架构图:
总结
上面我们讲解的只是简单的项目组件化架构的基础框架搭建,但是在真正的企业开发中,我们只搭建这样一个简单项目框架结构还远远不能满足需求的开发,我们还需要在项目框架中添枝加叶来满足现有需求。在上面提供的示例Demo中,我将电子发票业务组件独立成一个完整的工程,并结合了当下比较流行的MVVM设计模式和RAC数据绑定框架来实现电子发票模块的功能开发。如果有小伙们对 MVVM + RAC 实战开发感兴趣的,可以单独 install 电子发票工程查看,工程地址:iOS-MVVM-RAC
好啦,又一次写到凌晨了,不早了,本篇教程到此就讲完了。下篇教程讲解如何使用MVVM+RAC进行实战开发。小伙伴们,感觉文章对你有帮忙,帮忙点个赞呗,开源组件化工程项目 iOS-Component-Pro 也帮忙点个 star 吧 ,先谢过了。 参考文献本篇文章主要借鉴了casatwy的CTMediator思想重新实践了一遍,下面也有蘑菇街的MGJRouter 和 阿里的 BeeHive 供大家学习参考。
https://casatwy.com/modulization_in_action.html
https://github.com/casatwy/CTMediator
https://github.com/alibaba/BeeHive/blob/master/README-CN.md
https://github.com/meili/MGJRouter
更多文章作者开源React Native项目OneM(按照企业开发标准搭建框架):OneM:欢迎小伙伴们 star
作者开源mpvue美团外卖小程序:mpvue-meituan:欢迎小伙伴们 star
作者掘金技术专栏:https://juejin.im/user/590ebe4c2f301e0057d49342/posts
作者简书主页:包含60多篇RN开发相关的技术文章 欢迎小伙伴们:多多关注,多多点赞
React Native QQ技术交流群(600+ RN工程师):620792950欢迎小伙伴进群交流学习
iOS QQ技术交流群:678441305 欢迎小伙伴进群交流学习
欢迎小伙伴扫码进iOS技术交流群