美文网首页
组件化,模块化学习

组件化,模块化学习

作者: IOS_Wek | 来源:发表于2018-08-07 09:45 被阅读18次

蘑菇云模块化之路:

方案一:url + block的方式,内存里面存在一个映射表,存url 和 block。

所以会分为两个步骤:
1 注册,就是插入映射表代码如下:

[MGJRouter registerURLPattern:@"mgj://detail?id=:id" toHandler:^(NSDictionary *routerParameters) {
NSNumber *id = routerParameters[@"id"];
// create view controller with id
// push view controller
}];

2调用,调用只需要通过id 找到对应的block去执行即可:

[MGJRouter openURL:@"mgj://detail?id=404"]

方案二:由于方案一没有解决好参数的问题,所以传参数用 protocal - class 的方案来实现。

例如 模块二可以要获取模块一的数据, 那么模块一就可以定义一个协议,然后用新建一个类去实现这个协议获取数据。

这样的话,模块二要拿数据只需要拿到获取数据的类,就可以获取的到数据。这个类最好放一个统一的地方管理。

@protocol MGJCart <NSObject>

  • (NSInteger)orderCount;
    @end

可以看到通过协议可以直接指定返回的数据类型。然后在购物车组件内再新建个类实现这个协议,假设这个类名为MGJCartImpl,接着就可以把它与协议关联起来[ModuleManager registerClass:MGJCartImpl forProtocol:@protocol(MGJCart)],对于使用方来说,要拿到这个MGJCartImpl,需要调用[ModuleManager classForProtocol:@protocol(MGJCart)]。拿到之后再调用 + (NSInteger)orderCount就可以了。

方案三,用target-action 的技术实现,参考CTmediator

相关文章

  • iOS组件化储备

    资料 组件化/模块化 蜂鸟商家版 iOS 组件化 / 模块化实践总结 模块化与解耦 浅析 iOS 应用组件化设计 ...

  • 模块化、组件化与插件化(1)

    模块化、组件化与插件化 组件化 modularization、component 模块化 modularizati...

  • vue项目基建

    路由模块化 , 高频全局组件模块化 权限

  • 蜂鸟商家版 iOS 组件化 / 模块化实践总结

    蜂鸟商家版 iOS 组件化 / 模块化实践总结 蜂鸟商家版 iOS 组件化 / 模块化实践总结

  • iOS组件化、模块化

    这篇文章主要谈一下自己对模块化和组件化的理解。 模块化和组件化差别 很多时候模块化、组件化会被大家认为是一个东西。...

  • iOS模块化-模块间通信

    前言 前面写过一篇《iOS 组件化》,里面介绍了组件化和模块化的区别,模块化可以简单理解为业务模块的组件化。 模块...

  • 首次公开!腾讯T4大佬整理,内训专用《高级Android组件化强

    什么是组件化 组件化思想是对模块化的进一步演变,相对与模块化,组件化更加灵活,可以在application与lib...

  • webpack基础笔记

    webpack基础 1.前端工程化 实际的前端开发: 模块化:(js的模块化,css的模块化,资源的模块化) 组件...

  • vue.js组件初探

    组件的作用 vue.js组件的作用:拆分功能,便于复用。 组件化与模块化的区别: 模块化:从代码逻辑的角度进行划分...

  • 【Vue】组件

    Vue的两大核心 数据驱动 - 数据驱动界面显示 模块化 - 复用公共模块,组件实现模块化提供基础 组件基础 组件...

网友评论

      本文标题:组件化,模块化学习

      本文链接:https://www.haomeiwen.com/subject/plllvftx.html