看完后 HHRoute源码分析后,味道更佳,更易消化。
-
JLRoutes支持scheme,HHRoute没有
routeControllersMap = [[NSMutableDictionary alloc] init];
JLRoutes有一个routeControllersMap
静态字典,保存了"sheme"到JLRoutes实例的对应关系。首先会去对应的scheme下找到url pattern,这个是HHRoute没有的
-
JLRoutes类中重要的类说明
1. JLRRouteDefinition
主要含有优先级,Url pattern,scheme的包装类
2. JLRRouteRequest
对被传进来的路由url进行,格式处理,比如去除主机名,分格pathcomponet,提取query参数
3. JLRRouteResponse
将 JLRRouteRequest和JLRRouteDefinition匹配后,返回最终的匹配结果和参数的类
-
JLRoutes对比HHRoute
1.JLRoutes优势是代码支持添加scheme,HHRoute的只支持滤除plist中的scheme,只能app间跳转url使用
HHRouter
按照如下顺序注册两个url,后面match的时候只能找到StoryViewController
,因为后来注册的如果地址一致,会重写前面的,为毛就不支持scheme呢??
[[HHRouter shared] map:@"xw://user/:userId/"
toControllerClass:[UserViewController class]];
[[HHRouter shared] map:@"tn://user/:userId/"
toControllerClass:[StoryViewController class]];
[[HHRouter shared] matchController:@"xw://user/12"];
[[HHRouter shared] matchController:@"tn://user/12"];